[英]Mongoose query for subdocument containing array of objectId's
我有以下架構:
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都為null。在mongo控制台中,當使用ObjectId(“ ..”)表示法時,它將返回值
db.groups.find({members: ObjectId("5371a4763b32c3620728acb5")})
Group.find({members: req.body.uid}, function(err, items){})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.