【发布时间】:2014-07-01 15:08:01
【问题描述】:
我有以下架构:
var groupSchema = mongoose.Schema({
name: {type: String, index: {unique: true, dropDups: true}},
createdBy: String,
availableModules: [Number],
members: [{type: Schema.Types.ObjectId, ref: 'User'}]
});
“成员”字段只是来自用户表的 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 是空的,不管我怎么做。在 mongo 控制台中,它在使用 ObjectId("..") 表示法时返回值
db.groups.find({members: ObjectId("5371a4763b32c3620728acb5")})
【问题讨论】: