我有一个comments
集合,其中包含_id
的自定义值,而不是mongo objectIds:
var exports = module.exports = CommentsSchema = new mongoose.Schema({});
CommentsSchema.add({
_id : {type : Number, required : true, index: true, unique : true },
label: {type: String, index: true, unique : true }//Should be unique
});
记录:
db.comments.insert{_id:1, label : 'some text'});
db.comments.insert({_id:2, label : 'some text'});
另一个模式Posts
,其中引用Comments
如下
PostsSchema.add({
comments : [{type : Number, ref: 'Comments' }],
});
我尝试使用mongoose.populate
方法获取评论数据和帖子数据。但由于我有评论的自定义ID,我没有收到帖子中的评论数据。
Posts.find().populate('Comments').exec(function(err, posts){
console.log(posts);
});
我检查了mongoose populate docs,它定义了可以为populate传递的多个选项,但是也无法使其正常工作。是否可以将populate
方法用于自定义“_id”或自定义字段?
最终解决方案
如上所述使用CommentsSchema
和PostsSchema
,我使用下面的代码。
Posts.find({}).populate('comments').exec(function(err, posts){
console.log(posts);
});