2017-02-07 2 views
0

Как получить доступ к вспомогательному документу уже найденного документа?Доступ к дополнительным документам mongoose

Скажем, я создаю следующие модели:

const mongoose = require('mongoose'); 
const schema = mongoose.Schema; 

const barStructure = { 
    name: { type: String, require: true } 
} 

const fooStructure = { 
    name: { type: String, require: true }, 
    bar: { type: schema.ObjectId, ref: 'bar', require: false } 
} 

var BarModel = mongoose.model('Bar', schema(barStructure)); 
var FooModel = mongoose.model('Foo', schema(fooStructure)); 

, а затем создать:

FooModel.create({ name: 'name', bar: new BarModel({ name: 'name' }) }); 

Теперь, как я могу получить доступ bar от родителей?

FooModel.findOne({ name: 'name' }, (err, result) => { 
    //How can I access bar here? 
}); 

ответ

0

Вы можете использовать Mongoose Query Population особенность:

fooModel 
    .findOne({ name: 'name' }) 
    .populate('bar') 
    .exec((err, foo) => { 
    if (err) return handleError(err); 
    console.log(foo.bar): // Access sub model 
    }); 
+0

Это действительно работает. Спасибо :) – Xeul

Смежные вопросы