我有一个看起来有点像的架构:
var conversationSchema = new Schema({
    created: { type: Date, default: Date.now },
    updated: { type: Date, default: Date.now },
    recipients: { type: [Schema.ObjectId], ref: 'User' },
    messages: [ conversationMessageSchema ]
});
所以我的收件人集合是对象id引用我的用户架构/集合的集合.
我需要在查询中填充这些,所以我正在尝试这个:
Conversation.findOne({ _id: myConversationId})
.populate('user')
.run(function(err, conversation){
    //do stuff
});
但显然'用户'没有填充......
有没有办法可以做到这一点?
Dun*_*n_m 81
对于其他遇到此问题的人来说,OP的代码在架构定义中有错误.它应该是:
var conversationSchema = new Schema({
    created: { type: Date, default: Date.now },
    updated: { type: Date, default: Date.now },
    recipients: [{ type: Schema.ObjectId, ref: 'User' }],
    messages: [ conversationMessageSchema ]
});
mongoose.model('Conversation', conversationSchema);
aar*_*ann 28
使用架构路径的名称而不是集合名称:
Conversation.findOne({ _id: myConversationId})
.populate('recipients') // <==
.exec(function(err, conversation){
    //do stuff
});
| 归档时间: | 
 | 
| 查看次数: | 25476 次 | 
| 最近记录: |