猫鼬 - 填充方法

时间:2015-01-31 11:42:05

标签: node.js mongodb mongoose

我有一个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”或自定义字段?

最终解决方案 如上所述使用CommentsSchemaPostsSchema,我使用下面的代码。

Posts.find({}).populate('comments').exec(function(err, posts){
    console.log(posts);
    });

0 个答案:

没有答案