Mongoose: рдЙрдк-рдбреЙрдХ рд╕реНрдХреАрдорд╛ рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдЦреЛрдЬ рдореЗрдВ `рд╢реВрдиреНрдп` рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 4 рдирд╡ре░ 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Automattic/mongoose

рдиреЗрд╡рд▓рд╛: 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
    }

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

d09c3d677ca4daf087be343af177f05ae2043502 рдореЗрдВ рдлрд┐рдХреНрд╕реНрдб

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╕реНрдХреАрдорд╛.рдЬреЗрдПрд╕ рдореЗрдВ Schema.prototype.virtual рдШреЛрд╖рдгрд╛ рдореЗрдВ рдкреВрд░реНрд╡-рд╣реБрдХ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрдм рдирд╣реАрдВ рд╣реИ
рд╣реБрдХ рдХреЛ рдЦрд╛рд▓реА рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рднреА:

    this.pre('init', function(next, obj) {
      next();
    });

рдореБрджреНрджрд╛ рдЕрднреА рднреА рд╣реИред
рдЕрдЧрд░ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЬрд╛рддреА рд╣реИ рддреЛ рд╕рдм рдареАрдХ рд╣реИред

1079 рдлрд┐рд░ рд╕реЗ рд╣рдорд▓реЗред рдПрдХ рдлрд┐рдХреНрд╕ рдбрд╛рд▓реЗрдВ рдФрд░ 4.6.8:+1 рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛:

d09c3d677ca4daf087be343af177f05ae2043502 рдореЗрдВ рдлрд┐рдХреНрд╕реНрдб

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

rohan-paul picture rohan-paul  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

efkan picture efkan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

CodeurSauvage picture CodeurSauvage  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

varunjayaraman picture varunjayaraman  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ