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

$nin(クエリ述語演算子)

$nin

$nin 次の条件を満たすドキュメントを選択します。

  • 指定されたフィールド値が指定された配列にない、または

  • 指定されたフィールが存在しない。

次の環境でホストされる配置には $nin を使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のための完全管理サービスです
  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

$nin演算子の形式は次のとおりです。

{ field: { $nin: [ <value1>, <value2> ... <valueN> ] } }

field$ninfieldに配列がある場合、<value1> 演算子は、 が指定された配列内の値と等しい要素が ない 配列を持つドキュメントを選択します。例、、、<value2> 、 など。

異なる BSON 型値の比較については、BSON 比較順序の指定を参照してください。

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

次の例では、 runtime が 1000 分より大きく、rated が [ "G", "PG" ] にない映画を返します。$nin は ratedフィールドを含まないドキュメントにも一致するため、評価データが利用できない場合でもクエリは映画を返します。

db.movies.find(
{ rated: { $nin: [ "G", "PG" ] }, runtime: { $gt: 1000 } },
{ _id: 0, title: 1, year: 1, rated: 1 }
)

次の例では、genres 配列に "Drama" がない映画の excludeフィールドを true に設定します。

db.movies.updateMany(
{ genres: { $nin: [ "Drama" ] } },
{ $set: { exclude: true } }
)

updateMany()は、ドキュメントに$nin が一致するフィールドが含まれていない場合にもそのドキュメントを選択します。

非等価演算子 $nin の選択性は、インデックスの大部分と一致することが多いため、あまり高くありません。そのため、多くの場合、インデックスを持つ $nin クエリのパフォーマンスは、コレクション内のすべてのドキュメントをスキャンする必要がある $nin クエリと同程度になることがあります。「選択的なクエリの作成」も参照してください。

このページを評価