我有以下架构:
var groupSchema = mongoose.Schema({
name: {type: String, index: {unique: true, dropDups: true}},
createdBy: String,
availableModules: [Number],
members: [{type: Schema.Types.ObjectId, ref: 'User'}]
});
“members”字段只是用户表中ObjectID的直接数组。在执行其他操作之前,我需要检查成员子文档集合中是否存在给定的ObjectId(user._id)。
我尝过这样的话:
Group.find({req.body.uid}, {$in: {"members"}}, function(grps){..});
但这不起作用。我尝试过无数其他方法但似乎无法正常工作。我认为这很容易,但我似乎无法弄明白。
编辑进一步调查:
User.findOne({"local.email": req.body.user.email}, function(err, user){
Group.find({"members": user._id}, function(grps){
if(grps){ //do something}
});
});
无论我采用何种方式,grps都为null ..在mongo控制台中,当使用ObjectId(“..”)表示法时,它返回值
db.groups.find({members: ObjectId("5371a4763b32c3620728acb5")})
答案 0 :(得分:1)
Group.find({members: req.body.uid}, function(err, items){})