如何通过两个或多个强制性的subcondtions找到mongodb的文档

时间:2014-04-23 02:16:47

标签: node.js mongodb mongoose

可能的架构

var UserSchema = new Schema({
    name: {type : String},
    clubs: [{name: String}, {type : String}, {attending: boolean} ],
})

我尝试做的事情:找到有'的用户。某种类型的俱乐部,具有一定的参加价值:

User
   .find({ 'clubs.type': 'fightclub', 'clubs.attending': true }, 
       function(err, users){
           //users
       }

注意:必须在单个俱乐部内满足这两个条件,用户不能拥有2个不同的俱乐部,每个俱乐部都符合一个条件

1 个答案:

答案 0 :(得分:1)

这正是$elemMatch查询运算符的用途:

User.find({ clubs: {$elemMatch: {type: 'fightclub', attending: true }}}, 
   function(err, users){
       //users
   }