Mongo で「is not null」をクエリするにはどうすればよいですか? 質問する

Mongo で「is not null」をクエリするにはどうすればよいですか? 質問する

次のクエリを実行したいと思います。

db.mycollection.find(HAS IMAGE URL)

正しい構文は何でしょうか?

ベストアンサー1

これにより、「IMAGE URL」というキーを持つすべてのドキュメントが返されますが、null 値が残っている可能性があります。

db.mycollection.find({"IMAGE URL":{$exists:true}});

これにより、「IMAGE URL」というキーnull 以外の値の両方を持つすべてのドキュメントが返されます。

db.mycollection.find({"IMAGE URL":{$ne:null}});

また、ドキュメントによると、$exists は現在インデックスを使用できませんが、$ne は使用できます。

編集: この回答への関心の高さから、いくつかの例を追加しました

次の挿入があるとします:

db.test.insert({"num":1, "check":"check value"});
db.test.insert({"num":2, "check":null});
db.test.insert({"num":3});

これにより、3 つのドキュメントがすべて返されます。

db.test.find();

これにより、最初のドキュメントと 2 番目のドキュメントのみが返されます。

db.test.find({"check":{$exists:true}});

これは最初のドキュメントのみを返します。

db.test.find({"check":{$ne:null}});

これにより、2 番目と 3 番目のドキュメントのみが返されます。

db.test.find({"check":null})

おすすめ記事