рдиреЗрд╡рд▓рд╛: 4.6.6
рдореЛрдВрдЧреЛрдбрдм: 2.2.11
рдиреЛрдб: 4.5
рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ null
рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░рдгреА рдЙрдк-рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдлрд╝реАрд▓реНрдб рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдХреЗрд╡рд▓ рд╕рдХреНрд╖рдо/рдЕрдХреНрд╖рдо рдХрд░рдирд╛
var someModelSchema = new mongoose.Schema({
name: String
});
mongoose.model('someModel', someModelSchema)
var schema0 = new mongoose.Schema({
name0: String
});
schema0.virtual('detail', {
ref: 'SomeModel',
localField: '_id',
foreignField: '_id',
justOne: true
});
var schema1 = new mongoose.Schema({
name1: String,
list: [schema0],
obj: schema0
});
var schemaMain = new mongoose.Schema({
nestedObj: schema1,
nameMain: String
});
var ModelMain = mongoose.model('ModelMain', schemaMain);
var x = new ModelMain({
nameMain: 'sss',
nestedObj: {
name1: 'name1',
list: [{
name0: 'name0.1'
}],
obj: {
name0: 'name0.1'
}
}
})
x.save().then(function (err, docs) {
ModelMain.find({}, function (err, docs) {
console.log(JSON.stringify(docs, null, 4));
})
})
рдХрд╛ рдкрд░рд┐рдгрд╛рдо
{
"_id": "581cbf70d7c120443684a490",
"nameMain": "sss",
"nestedObj": {
"name1": "name1",
"obj": {
"name0": "name0.1",
"_id": "581cbf70d7c120443684a492"
},
"_id": "581cbf70d7c120443684a491",
"list": [
null
]
},
"__v": 0
}
list
рд╕рдВрдкрддреНрддрд┐ рд╢реВрдиреНрдп рд╣реИред рдпрджрд┐ рдЖрдк рдЖрднрд╛рд╕реА рд╕рдВрдкрддреНрддрд┐ рдШреЛрд╖рдгрд╛ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕реВрдЪреА рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рд╣реИ:
{
"_id": "581cbfdf0700ba445223c848",
"nameMain": "sss",
"nestedObj": {
"name1": "name1",
"obj": {
"name0": "name0.1",
"_id": "581cbfdf0700ba445223c84a"
},
"_id": "581cbfdf0700ba445223c849",
"list": [
{
"name0": "name0.1",
"_id": "581cbfdf0700ba445223c84b"
}
]
},
"__v": 0
}
рд╕реНрдХреАрдорд╛.рдЬреЗрдПрд╕ рдореЗрдВ Schema.prototype.virtual
рдШреЛрд╖рдгрд╛ рдореЗрдВ рдкреВрд░реНрд╡-рд╣реБрдХ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрдм рдирд╣реАрдВ рд╣реИ
рд╣реБрдХ рдХреЛ рдЦрд╛рд▓реА рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рднреА:
this.pre('init', function(next, obj) {
next();
});
рдореБрджреНрджрд╛ рдЕрднреА рднреА рд╣реИред
рдЕрдЧрд░ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЬрд╛рддреА рд╣реИ рддреЛ рд╕рдм рдареАрдХ рд╣реИред
d09c3d677ca4daf087be343af177f05ae2043502 рдореЗрдВ рдлрд┐рдХреНрд╕реНрдб
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
d09c3d677ca4daf087be343af177f05ae2043502 рдореЗрдВ рдлрд┐рдХреНрд╕реНрдб