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

MongoDB:フィールドがnullまたは設定されていないレコードをクエリする方法は?

    sent_atの場合 設定されていない場合、フィールドはありません:

    db.emails.count({sent_at: {$exists: false}})
    

    そこにあり、nullの場合、またはまったくない場合:

    db.emails.count({sent_at: null})
    

    そこにありnullの場合:

    db.emails.count({sent_at: { $type: 10 }})
    

    MongoDBマニュアルの「NullまたはMissingFieldsのクエリ」セクションでは、null値とMissing値をクエリする方法について説明しています。

    等式フィルター

    { item : null } クエリは、値がnullのアイテムフィールドを含むドキュメントに一致します または itemを含まない フィールド。

    db.inventory.find( { item: null } )
    

    存在チェック

    次の例では、フィールドを含まないドキュメントをクエリします。

    { item : { $exists: false } } クエリは、itemを含まないドキュメントと一致します フィールド:

    db.inventory.find( { item : { $exists: false } } )
    

    タイプチェック

    { item : { $type: 10 } } クエリはのみに一致します itemを含むドキュメント 値がnullのフィールド;つまり、アイテムフィールドの値はBSONタイプNullです。 (タイプ番号10 ):

    db.inventory.find( { item : { $type: 10 } } )
    


    1. 同期メソッド用のStackExchange.RedisConnectionMultiplexerプール

    2. マングースfindOneの使い方

    3. MongoDBの既存のインデックスを削除せずに変更できますか?

    4. オープンソースデータベースを管理するための新しい方法