查询指针数组Mongoose Node.js
我有一个正常的MongoDB与2集:
带有数组指针的post。
var Post = mongoose.model('Post', new mongoose.Schema({ groups: {type: [{type: mongoose.Schema.Types.ObjectId, ref: 'Group'}]}, })); var Group = mongoose.model('Group', new mongoose.Schema({ }));
现在我想要查询所有post里有一个组在ID数组中给出的组?
我尝试了以下内容:
return Post.find({ groups: req.body.groupId} },function(err,post){ console.log(post); res.send(post); });
我也尝试先查询组对象,并通过这个而不是groupId? 有人有想法吗?
我认为你的Post模式有错误,它应该看起来像这样:
var Post = mongoose.model('Post', new mongoose.Schema({ groups: [{type: mongoose.Schema.Types.ObjectId, ref: 'Group'}], }));
那么你的查询应该正常工作。
除了Yelizaveta的更正之外,你还没有提到.populate(aaa)
return Post.find({ groups: req.body.groupId} },function(err,post){ console.log(post); res.send(post); }).populate('groups');
列出types的字段:引用…没有这个.populate()这些字段将只列出ObjectId值,而不是引用的其他集合中的基础文档:group