比方说,我有2个集合评论和用户。评论包括用户名和评论,用户有用户名和头像。在检索评论时我还想显示头像,我应该如何查询这两个集合?我的第一个想法是获取所有注释,然后迭代用户名并查询用户集合以获取头像。我可以这样做吗?使用nodejs和mongoose
答案 0 :(得分:3)
如果我可以发表评论,我认为这可能不是一个完整的答案。但对我来说 Database References和MongoDB Data Modeling and Rails对该主题的解释非常好。
但是你所描述的肯定是我发送的第一个链接中讨论的内容。
答案 1 :(得分:3)
Populate
可能就是你要找的东西:
http://mongoosejs.com/docs/populate.html
在这里为后人粘贴一些: ObjectIds现在可以引用我们数据库中集合中的另一个文档,并在查询时使用populate()d。一个例子很有用:
var mongoose = require('mongoose')
, Schema = mongoose.Schema
var PersonSchema = new Schema({
name : String
, age : Number
, stories : [{ type: Schema.ObjectId, ref: 'Story' }]
});
var StorySchema = new Schema({
_creator : { type: Schema.ObjectId, ref: 'Person' }
, title : String
, fans : [{ type: Schema.ObjectId, ref: 'Person' }]
});
var Story = mongoose.model('Story', StorySchema);
var Person = mongoose.model('Person', PersonSchema);