2017-03-20 41 views
1

我想這樣一個在SQL中蒙戈DB查詢:與流星MongoDB的查詢AND和OR

Select * from Users 
where familyId [email protected] and (isDeleted =false or isDeleted is null) 

已經我第一個條件,我不知道如何與混合IT和-OR

var myMembers = Meteor.users.find({ "profile.family_id":  Meteor.user().profile.family_id }); 

怎麼可能?

回答

3

您可以用$and運營商作爲專門查詢:

var family_id = Meteor.user().profile.family_id, 
    myMembers = Meteor.users.find({ 
     "$and": [ 
      { "profile.family_id": family_id }, 
      { 
       "$or": [ 
        { "isDeleted": false }, 
        { "isDeleted": null } /* or { "isDeleted": { "$exists": false } } */ 
       ] 
      } 
     ] 
    }); 

或隱含通過指定用逗號分隔的表達式:

var family_id = Meteor.user().profile.family_id, 
    myMembers = Meteor.users.find({ 
     "profile.family_id": family_id, 
     "$or": [ 
      { "isDeleted": false }, 
      { "isDeleted": null } /* or { "isDeleted": { "$exists": false } } */ 
     ] 
    }); 

注意:要檢查是否字段存在,則可以使用$exists運算符作爲{ "isDeleted": { "$exists": false } },因爲{ isDeleted : null }query與包含值爲空的isDeleted字段或不包含isDeleted字段的文檔匹配。

+1

它確實有效。謝謝 – Mehr