Во время исследования вложенного документа мангусты я обнаружил, что он имеет множество способов.Что такое тип вложенного документа в mogoose?
/*
Collection : profiles
{
"name":"terry",
"address":{
"zipcode":135090,
"city":"seoul",
"state":"kyungki"
},
"birthday":"1975-03-03",
"meta":{
"company":"cloud consulting",
"book":"architecture design"
},
"image":{
"data":"xxxxxxx",
"contentType":"image/png"
}
}
*/
var mongoose = require('mongoose');
var fs = require('fs');
mongoose.connect('mongodb://localhost:27017/mydb');
var addressSchema = new mongoose.Schema({
zipcode : Number,
city : String,
state : String
});
var profileSchema = new mongoose.Schema({
name : String,
address : addressSchema,
birthday : Date,
meta : mongoose.Schema.Types.Mixed,
image : {
data : Buffer,
contentsType : String
}
});
var Profile = mongoose.model('profiles',profileSchema);
var Address = mongoose.model('address',addressSchema);
var p = new Profile();
p.name = "terry";
// address
var a = new Address();
a.zipcode = 135090;
a.city = "youngin";
a.state = "Kyungki";
p.address = a;
// birthday
p.birthday = new Date(1970,05,10);
// meta
p.meta = { company : 'cloud consulting', book : 'architecture design'};
// image
p.image.contentsType='image/png';
var buffer = fs.readFileSync('/Users/terry/nick.jpeg');
p.image.data = buffer;
p.save(function(err,silece){
if(err){
cosole.log(err);
return;
}
console.log(p);
});
как вы можете видеть, адреса, мета и изображения являются вложенными документами. Для поля адреса я создал поле addressSchema и мета-поле i использовал смешанный тип в мангусте. и для поля изображения я просто определил вложенный документ в ProfileSchema.
Я использовал 3 разных способа, но я не знаю, какая разница между ними.
Может ли u plz любезно дать мне подсказку для этого? Thanx заранее.
Возможный дубликат [Mongoose поддокументами против вложенной схемы] (http://stackoverflow.com/questions/15208711/mongoose-subdocuments-vs-nested-schema) –