2017-06-23 10 views
0

MongoDBはINIDの値が1でなく、SESSIONが1でない(同じドキュメント内のINIDとSESSIONに一致する必要があります)データを取得します。でないデータを取得し、

例:

{ 
    "_id" : ObjectId("5946800b962d74070729407a"), 
    "INID" : 2, 
    "SESSION" : 1, 
    "TD" : ISODate("2017-06-18T13:28:43.409Z"), 
    "ID" : 2, 
    "OUT" : [ 
     { 
      "score" : 50, 
      "id" : "0", 
      "out" : { 
       "status" : "unreachable" 
      } 
     } 
    ] 
} 

{ 
    "_id" : ObjectId("5946800b962d74070729407a"), 
    "INID" : 3, 
    "SESSION" : 1, 
    "TD" : ISODate("2017-06-18T13:28:43.409Z"), 
    "ID" : 2, 
    "OUT" : [ 
     { 
      "score" : 50, 
      "id" : "0", 
      "out" : { 
       "status" : "unreachable" 
      } 
     } 
    ] 
} 

{ 
    "_id" : ObjectId("5946800b962d74070729407a"), 
    "INID" : 1, 
    "SESSION" : 1, 
    "TD" : ISODate("2017-06-18T13:28:43.409Z"), 
    "ID" : 2, 
    "OUT" : [ 
     { 
      "score" : 50, 
      "id" : "0", 
      "out" : { 
       "status" : "unreachable" 
      } 
     } 
    ] 
} 

私は最初の二つの文書をしたいです。

+0

@felixなぜ '$ and'を?なぜあなたは、人々に、必要がないときに '$と'を書くように言うのですか? ** ALL ** MongoDBのクエリ式は "既に" AND条件です。 –

+0

は試行されましたが、結果が得られませんでしたdb.getCollection( 'OUTPUT')。({$と:[{"INID":{$ ne:1}、 "SESSION":{$ ne:1}}})) – user3041095

+0

最初の2つのドキュメントが必要だと言っていますが、どちらの場合もSESSION *は1に等しいと言います - どのようにクエリしたいかという記述に基づいて、除外すべきだと思います。 –

答えて

1

まあ、これは私の仕事:

db.yourCollectionName.find(
    { $or : [ { INID : {$gt: 1} }, { SESSION : {$gt: 1} } ] } 
) 

をこのクエリを使用すると、1より大きいINIDまたはSESSION 1より大きいかまたは両方より大きいものを持つことができます。なぜあなたは否定する必要がありますか?

私はあなたにもこれを行うことができますね。

db.yourCollectionName.find(
    { $or : [ { INID : {$ne: 1} }, { SESSION : {$ne: 1} } ] } 
) 
+0

ありがとうございました。db.yourCollectionName.find( {$ or:{IN IN:{$ ne:1}}、{セッション:{$ ne:1}}]} ) – user3041095

関連する問題