2017-03-20 5 views
1

私はSQLでのこのようなモンゴDBに問い合わせをしたい:流星のMongoDBとクエリANDとOR

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

すでに私は最初の条件を持って、私はそれを混ぜAND-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({ 
     "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({ 
     "$and": [ 
      { "profile.family_id": family_id }, 
      { 
       "$or": [ 
        { "isDeleted": false }, 
        { "isDeleted": null } /* or { "isDeleted": { "$exists": false } } */ 
       ] 
      } 
     ] 
    }); 

または暗黙的かどうかを確認するにはフィールドが存在する場合は、$exists演算子をとして使用できます{ isDeleted : null }queryは、isDeletedフィールドの値がnullであるか、またはisDeletedフィールドを含まないドキュメントと一致するため、になります。

+1

動作します。ありがとう – Mehr