查询指针数组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