AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

Null または欠落しているフィールドのクエリ

次の方法を使用して、 MongoDB内の null または欠落しているフィールドをクエリします。


➤ 右上の [言語選択] ドロップダウンメニューを使用して、以下の例の言語を設定するか、MongoDB Compass を選択します。


MongoDBのクエリ演算子は、null 値を異なる方法で処理します。

このページでは db.collection.find() メソッドを使用して、null 値に対して mongosh で実行されるクエリ操作の例を取りあげます。

重要

MongoDB Shell で null を使用して、MongoDB内の null または欠落しているフィールドをクエリします。

このページの例では、sample_mflix データセット のデータを使用しています。自己管理型 MongoDB 配置にこのデータセットをロードする方法の詳細については、「サンプル データセットのロード」を参照してください。サンプル データベースに何らかの変更を加えた場合は、今ページの例を実行するには、データベースを削除して再作成する必要がある可能性があります。

{ metacritic : null }クエリは、metacritic null値を持つ フィールドを含む、 またはmetacritic フィールドを含まないドキュメントに一致します。

db.movies.find( { metacritic: null } )

このクエリは、metacriticフィールドに null 値が含まれているか、 または 存在しない moviesコレクション内のすべてのドキュメントを返します。

存在し、かつ null 以外のフィールドをクエリするには、{ $ne : null } フィルターを使用します。

{ metacritic : { $ne : null } } クエリは、metacriticフィールドが存在し、かつ、null 以外の値を持つドキュメントに一致します。

db.movies.find( { metacritic: { $ne: null } } )

{ metacritic : { $type: 10 } } クエリは、のみ null 値を持つ metacriticフィールドを含むドキュメントに一致します。metacriticフィールドの値はBSON Type Null(BSON Type 10)です。

db.movies.find( { metacritic: { $type: 10 } } )

クエリは、metacriticフィールドに null 値がある moviesコレクションのドキュメントのみを返します。

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

{ metacritic : { $exists: false } } クエリでは、metacritic フィールドを含まないという条件と一致するドキュメントを絞り込みます。

db.movies.find( { metacritic: { $exists: false } } )

クエリでは、metacriticフィールドを含まない moviesコレクションのドキュメントのみが返されます。

注意

式 は $exists 演算子をサポートしていません。式にフィールドの存在を確認するには、$type 集計演算子を使用してフィールドのタイプが missing であるかどうかを確認します。

詳細については、$type の有無のチェック を参照してください。

Tip

$type と $exists 演算子のリファレンス ドキュメント。

このセクションの例では、訓練用サンプル データセットを使用します。サンプル データセットを MongoDB Atlas 配置にロードする方法について詳しくは、「サンプル データのロード」を参照してください。

MongoDB Atlas で null または欠落しているフィールドをクエリするには、次の手順に従います。

1
  1. まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー

  2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

  3. サイドバーで、 Database見出しの下のClustersをクリックします。

    [ Clusters (クラスター) ] ページが表示されます。

2
  1. サンプル データを含むクラスターで、[ Browse Collections ] をクリックします。

  2. 左側のナビゲーション ペインで、sample_training データベースを選択します。

  3. companies コレクションを選択します。

3

[Insert Document] ボタンをクリックして、ダイアログ ボックスが表示されたら、[Insert] をクリックして _id フィールドのみを含むドキュメントを挿入します。

4

null または欠損値を含むドキュメントを検索するには、Filter フィールドでクエリフィルター ドキュメントを指定します。クエリフィルター ドキュメントは、クエリ演算子を使用して検索条件を指定します。

MongoDBのクエリ演算子は、null 値を異なる方法で処理します。クエリフィルターを適用するには、次の各ドキュメントを Filter 検索バーにコピーし、Apply をクリックします。

次のクエリフィルターを使用して、null 値を持つ descriptionフィールドを含む、 または descriptionフィールドを含まないドキュメントを検索します。

{ description : null }

次のクエリフィルタを使用して、description フィールドに null 値を含むドキュメントのみを一致させます。このフィルターは、フィールドの値が BSON 型 Null(BSON 型 10)であるという必須条件を指定します。

{ description : { $type: 10 } }

次のクエリフィルターを使用して、description フィールドを含まないドキュメントのみを一致させます。以前に挿入したドキュメントのみが表示されます。

{ description : { $exists: false } }