我有以下架构:
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")})
1 回答