mongodb - Mongoose - 在 ObjectId 数组上使用 Populate

标签 mongodb mongoose

我有一个看起来有点像的架构:

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
});

但显然“用户”没有填充...

有什么办法可以做到吗?

最佳答案

对于遇到此问题的其他人.. 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);

关于mongodb - Mongoose - 在 ObjectId 数组上使用 Populate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10568281/

相关文章:

node.js - Mongo DB - 具有位置和字段半径的地理空间查询(内部字段比较)

mongodb - Mongoose 和独特的领域

node.js - 无法通过 Docker 中的 node.js 连接到 MongoDB

mongodb - 如何使用 C# 驱动程序中的 BsonSerializer 为 MongoDB 克隆/复制 POCO 实体

javascript - 无法使用 Node JS 在 Express 中重定向

node.js - 保存已删除选定字段的 Mongoose 文档

javascript - 无法使 mongoose 过期/ttl 工作

node.js - 在将新对象插入其中之前从核心 Mongoose 数组中删除对象

mongodb - 查询以查找 mongodb 图集合中的连接组件?

javascript - 使用 Mongoose 时上下文 :'query' 选项有什么作用?