MongoDBでnull値をクエリするには?$ne演算子の使い方を解説
MongoDBでnull値をクエリするには?$ne演算子の使い方
MongoDBでnull値を扱うクエリを実行するには、$ne(not equal)演算子を使用します。本記事では、サンプルコレクションを作成し、null値を持つドキュメントと持たないドキュメントを区別して取得するまでの手順を、実際のコードと実行結果とともにわかりやすく解説します。
ステップ1:サンプルコレクションの作成
まず、insertOne()メソッドを使って、コレクション「queryingNullDemo」に2つのドキュメントを挿入します。1つ目のドキュメントは「StudentSubject」フィールドに文字列「MongoDB」を持ち、2つ目は同じフィールドにnull値が設定されている点がポイントです。
> db.queryingNullDemo.insertOne(
... {
... "StudentName":"Larry",
... "StudentDetails":
... {
... "StudentAge":21,
... "StudentSubject":"MongoDB"
... }
... }
... );
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd00bec588d4a6447b2e05f")
}
> db.queryingNullDemo.insertOne(
... {
... "StudentName":"Sam",
... "StudentDetails":
... {
... "StudentAge":23,
... "StudentSubject":null
... }
... }
... );
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd00c00588d4a6447b2e060")
}
ステップ2:すべてのドキュメントを確認する
find()メソッドを使うと、コレクション内のすべてのドキュメントを表示できます。
> db.queryingNullDemo.find().pretty();
実行すると、以下のように2件のドキュメントが出力されます。
{
"_id" : ObjectId("5cd00bec588d4a6447b2e05f"),
"StudentName" : "Larry",
"StudentDetails" : {
"StudentAge" : 21,
"StudentSubject" : "MongoDB"
}
}
{
"_id" : ObjectId("5cd00c00588d4a6447b2e060"),
"StudentName" : "Sam",
"StudentDetails" : {
"StudentAge" : 23,
"StudentSubject" : null
}
}
ステップ3:$ne演算子でnull以外の値をクエリする
null値を除外してドキュメントを取得したい場合は、次のように$ne演算子にnullを指定します。
> db.queryingNullDemo.find({'StudentDetails.StudentSubject': {$ne: null}});
このクエリを実行すると、「StudentSubject」がnullではないドキュメントのみが返されます。
{ "_id" : ObjectId("5cd00bec588d4a6447b2e05f"),
"StudentName" : "Larry",
"StudentDetails" : { "StudentAge" : 21, "StudentSubject" : "MongoDB" } }
$ne: null の挙動に関するポイント
{$ne: null}は、「フィールドが存在し、かつその値がnullではない」ドキュメントにマッチします。一方、{フィールド名: null}と指定した場合は、値がnullのドキュメントに加えて、フィールド自体が存在しないドキュメントもマッチするため注意が必要です。この違いを理解しておくことで、MongoDBでのデータ検索をより正確に行えるようになります。
-
MongoDBでnull値を除外してドキュメントを取得する方法($ne演算子の使い方)
MongoDBでコレクション内のnull値を無視(除外)してドキュメントを取得したい場合、aggregate()の中で「$ne : null」を使用します。この記事では、実際にサンプルコレクションを作成し、null値を除外するクエリの書き方をステップごとに解説します。 1. サンプルコレクションの作成 まず、insertOne()メソッドを使って、配列フィールドに空文字・通常の文字列・nullが混在したドキュメントを持つコレクションを作成します。 > db.demo722.insertOne( ... { ... id:101, ... detail
-
MongoDBでnullではないことをチェックする方法|$ne演算子の使い方
MongoDBでフィールドがnullではないことを確認したい場合、$ne(not equal)演算子を使用します。この記事では、実際にコレクションを作成しながら、null以外のドキュメントを抽出する方法を解説します。1. サンプルコレクションの作成まず、テスト用のコレクションにドキュメントを挿入してみましょう。> db.demo764.insertOne({"LoginUserName":"Chris","LoginPassword":"Chris_12"}); { &qu