2012-03-06 110 views
2

比方说,例如我有2个集合Comments和Users.The注释包括用户名和评论,用户有用户名和头像。当检索评论我也想显示头像时,我应该如何查询两个集合?我的第一个想法是获得所有的评论,然后迭代通过用户名和查询用户集合以获得化身。我能以不同的方式做到吗?使用nodejs和猫鼬从mongodb中的多个集合中获取数据

回答

3

Populate可能是你在找什么:

http://mongoosejs.com/docs/populate.html

粘贴一些在这里为后人: 的ObjectID现在可以参考其他文档的集合在我们的数据库中,并进行填充()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); 
+0

查询结果将如何查找? – 2016-08-22 05:53:43

+0

你救了我的命! :d – Sparw 2016-12-01 13:50:16

3

如果我可以评论我会因为这可能不是一个完整的答案。但对我来说, Database ReferencesMongoDB Data Modeling and Rails对这个话题总的来说是非常好的解释。

但是你所描述的绝对是我发送的第一个链接中讨论的内容。