不确定这是好/坏做法,但我已成功将两组数据(mongodb集合)服务到玉页。
这些数据的例子mongoose Schemas如下:
...
var personSchema = new Schema({
firstName: String,
lastName: String,
email: String,
city: String,
state: String,
zip: Number
});
module.exports = mongoose.model('person', personSchema);
和
...
var personQuoteSchema = new Schema({
_person : {
type: Schema.ObjectId,
ref: 'person'
},
quote: Number
});
module.exports = mongoose.model('quote', personQuoteSchema);
我已经成功地为玉器提供了两个系列,它们工作正常。但现在我对如何做我想做的事感到困惑:
我正在为报价构建一个页面,该报价为报价所针对的人提取数据。在来自引号集合的单引号的文档中,它具有来自人员集合的人的ObjectId。
这是我到目前为止所做的,但我被困住了:
each quote in quotes
ul
li #{quote.quote}
li #{quote._person.firstName} #{quote._person.lastName}
因为它不起作用。我需要找到一种方法来进入报价文档中引用的人员文档并获取firstName和lastName。
这是我第一次在stackoverflow上寻求帮助,如果我错过任何可以帮助你帮助我的信息,请告诉我。
答案 0 :(得分:0)
问题是除了将ObjectId和ref添加到Schema之外还有一个额外的步骤。正如@Molda所指出的,你必须使用.populate()函数才能使它工作。
一旦我看到评论,我就会查找.populate()函数,而this page可以很好地解释它。
因此,当我拨打电话时,它必须看起来像:
quote.find({}).populate({
path: '_person',
model: 'person'
}).exec(callback);