我已阅读this guide来构建数据库。我理解它,但我想在我自己的RESTful API中实现这个想法,但似乎我反对我迄今为止所做的事情。
在链接的MongoDB文档中,它通过简单地引用ObjectID来讨论节省空间,我试图这样做并遵循Mongoose人口文档here。
但是在实现这个之后,我的完整问题数据被添加到我的用户,如图所示:
而不是它在MongoDB中的建议:
{
name : 'left-handed smoke shifter',
manufacturer : 'Acme Corp',
catalog_number: 1234,
parts : [ // array of references to Part documents
ObjectID('AAAA'), // reference to the #4 grommet above
ObjectID('F17C'), // reference to a different Part
ObjectID('D2AA'),
// etc
]
由于问题可能很大,我不想在用户中嵌入问题,但要引用其ID,然后使用它来获取所有特定用户的问题通过他们的问题阵列。我确实设法只在mongoose中保存一个数组,但发现我无法找到如何从ID中提取完整的文档并将它们全部显示出来,所以如果可能的话,我会很感激。
答案 0 :(得分:0)
例如
var bandSchema = new Schema({
name: String,
lead: { type: ObjectId, ref: 'people', autopopulate: true }
});
bandSchema.plugin(autopopulate);
var Band = mongoose.model('band3', bandSchema, 'bands');
Band.findOne({ name: "Guns N' Roses" }, function(error, doc) {
assert.ifError(error);
assert.equal('Axl Rose', doc.lead.name);
assert.equal('William Bruce Rose, Jr.', doc.lead.birthName);
done();
});
或者你可以试试这个
Modelname.find({})
.populate('fieldname')
.exec(function(error, posts) {
console.log(JSON.stringify(posts, null, "\t"))
})