sql >> データベース >  >> NoSQL >> MongoDB

MongoDB $ examples

    MongoDBでは、$existsを使用できます 特定のフィールドを含むドキュメントを照合するための要素クエリ演算子。

    また、特定のフィールドを含まないドキュメントと照合するためにも使用できます。

    $ninなどの他の演算子と組み合わせて使用​​することもできます 特定のフィールドが存在するが、特定の値が含まれていないドキュメントと照合します。

    catsというコレクションがあるとします。 次のドキュメントが含まれています:

    { "_id" : 1, "name" : "Scratch", "born" : "March, 2020" }
    { "_id" : 2, "name" : "Meow", "weight" : 30 }
    { "_id" : 3, "name" : "Fluffy", "height" : 15 }
    { "_id" : 4, "name" : "Sox", "weight" : 40 }
    { "_id" : 5, "name" : null, "weight" : 20 }
    { "_id" : 6, "height" : 20, "born" : ISODate("2021-01-03T23:30:15.123Z") }

    これらの文書は、それらが持っている分野に関してわずかに矛盾しています。 weightを持つものもあります フィールド、他の人はheight フィールドには、bornがあるものもあります フィールドなど

    $existsを使用できます 特定のフィールドを持つそのコレクションからドキュメントを返す演算子。

    例:

    db.cats.find( { weight: { $exists: true } } )

    結果:

    { "_id" : 2, "name" : "Meow", "weight" : 30 }
    { "_id" : 4, "name" : "Sox", "weight" : 40 }
    { "_id" : 5, "name" : null, "weight" : 20 }

    weightを含むドキュメントのみが表示されます フィールドが返されます。

    nullを含むフィールド

    $exists 演算子には、nullを含むフィールドが含まれます 。 nullを区別しません および非null 値。

    例:

    db.cats.find( { name: { $exists: true } } )

    結果:

    { "_id" : 1, "name" : "Scratch", "born" : "March, 2020" }
    { "_id" : 2, "name" : "Meow", "weight" : 30 }
    { "_id" : 3, "name" : "Fluffy", "height" : 15 }
    { "_id" : 4, "name" : "Sox", "weight" : 40 }
    { "_id" : 5, "name" : null, "weight" : 20 }

    nameにもかかわらず、ドキュメント5が返されたことがわかります。 フィールドはnull

    特定の値なしで存在する

    $existsを組み合わせることができます 他の演算子を使用して、フィールドを含むが、そのフィールドに特定の値が含まれていないドキュメントを返します。

    例:

    db.cats.find( { weight: { $exists: true, $nin: [20,30] } } )

    結果:

    { "_id" : 4, "name" : "Sox", "weight" : 40 }

    これは、単に$ninを使用した場合に見られる結果とは異なります。 $existsなし オペレーター。

    これがどのように見えるかです:

    db.cats.find( { weight: { $nin: [20,30] } } )

    結果:

    { "_id" : 1, "name" : "Scratch", "born" : "March, 2020" }
    { "_id" : 3, "name" : "Fluffy", "height" : 15 }
    { "_id" : 4, "name" : "Sox", "weight" : 40 }
    { "_id" : 6, "height" : 20, "born" : ISODate("2021-01-03T23:30:15.123Z") }

    特定のフィールドを含まないドキュメント

    $exists: falseを使用できます しないドキュメントを返す 指定されたフィールドが含まれます。

    例:

    db.cats.find( { name: { $exists: false } } )

    結果:

    { "_id" : 6, "height" : 20, "born" : ISODate("2021-01-03T23:30:15.123Z") }

    この場合、コレクション内の1つのドキュメントにnameが含まれていません フィールド。

    複数のフィールドを確認する

    複数のフィールドが存在するかどうかは、コンマで区切って確認できます。

    例:

    db.cats.find( { 
      name: { $exists: true }, 
      height: { $exists: true } 
    } )

    結果:

    { "_id" : 3, "name" : "Fluffy", "height" : 15 }

    この例では、nameの両方を含むすべてのドキュメントが返されます フィールドとheight フィールド。


    1. 時系列をredisに保存する

    2. Sentinel C#からRedisマスターアドレスを取得する

    3. Redis-メモリ使用量の監視

    4. MongoDBのデータベースインデックス作成の概要