MongoDBの特定のフィールドが欠落しているコレクション内のドキュメントを検索する方法は?
ええ、それは $ exists を使用して可能です:
db.things.find( { a : { $exists : false } } ); // return if a is missing
Trueの場合、$ existsは、フィールド値がnullのドキュメントを含む、フィールドを含むドキュメントと一致します。 falseの場合、クエリはフィールドを含まないドキュメントのみを返します。
フィールドが欠落しているかnull
かどうか(またはnull
にならない場合)を気にしない場合は、少し短いandより安全なものを使用できます。
db.things.find( { a : null } ); // return if a is missing or null
$exists
は、フィールドがnullの場合でもtrue
を返します。これは多くの場合、望ましい結果ではなく、NPEにつながる可能性があります。