首页 文章

Mongoose查询包含objectId数组的子文档

提问于
浏览
0

我有以下架构:

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 回答

  • 1
    Group.find({members: req.body.uid}, function(err, items){})
    

相关问题