【发布时间】:2018-02-13 02:24:35
【问题描述】:
我想在我的 MongoDB\Mongoose 项目中创建一个带有评论的项目。 由于这是我的第一个 MongoDB 项目,所以我有一个奇怪的问题:
我需要这样的项目文档
var itemSchema = new mongoose.Schema({
name: String
});
我需要这个项目的 cmets,如下所示:
var commentSchema = new mongoose.Schema({
text: String,
itemId: {type: mongoose.Schema.Types.ObjectId, ref: 'Item' },
});
而且我不想在我的 Item 文档中保留评论 ID,如下所示:
var itemSchema = new mongoose.Schema({
name: String,
comments: [ {type: mongoose.Schema.Types.ObjectId, ref: 'Comment' } ]
});
那么如果我只知道Item.name 的值,我应该如何调用模型Item 来获取该项目的所有comments?我可以在单个 mongoose 请求中使用 populate() 吗?或者我必须发出两个请求(首先获取 Item 以查找 _id,其次获取 Comments 其中 itemId == Item._id ?
或者也许我这样做完全错误?
【问题讨论】:
标签: mongoose mongoose-populate