MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBでnullではないことをチェックする方法|$ne演算子の使い方

MongoDBでフィールドがnullではないことを確認したい場合、$ne(not equal)演算子を使用します。この記事では、実際にコレクションを作成しながら、null以外のドキュメントを抽出する方法を解説します。

1. サンプルコレクションの作成

まず、テスト用のコレクションにドキュメントを挿入してみましょう。

> db.demo764.insertOne({"LoginUserName":"Chris","LoginPassword":"Chris_12"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eb04ee55637cd592b2a4afc")
}
> db.demo764.insertOne({"LoginUserName":"Chris","LoginPassword":null});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eb04eee5637cd592b2a4afd")
}
> db.demo764.insertOne({"LoginUserName":"Chris","LoginPassword":""});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eb04ef35637cd592b2a4afe")
}

この例では、3つのパターンを持つドキュメントを作成しています。

  • 通常の文字列値が設定されたドキュメント
  • LoginPasswordが null のドキュメント
  • LoginPasswordが空文字列のドキュメント

2. find()メソッドですべてのドキュメントを表示

find()メソッドを使用すると、コレクション内のすべてのドキュメントを表示できます。

> db.demo764.find();

実行結果

{ "_id" : ObjectId("5eb04ee55637cd592b2a4afc"), "LoginUserName" : "Chris", "LoginPassword" : "Chris_12" }
{ "_id" : ObjectId("5eb04eee5637cd592b2a4afd"), "LoginUserName" : "Chris", "LoginPassword" : null }
{ "_id" : ObjectId("5eb04ef35637cd592b2a4afe"), "LoginUserName" : "Chris", "LoginPassword" : "" }

3. $ne演算子でnullではないドキュメントを取得する

それでは、本題である「nullではない」ことをチェックするクエリを見てみましょう。$ne演算子に null を指定することで、対象フィールドがnull以外の値を持つドキュメントのみを抽出できます。

> db.demo764.find({"LoginUserName":"Chris","LoginPassword" : { '$ne': null } });

実行結果

{ "_id" : ObjectId("5eb04ee55637cd592b2a4afc"), "LoginUserName" : "Chris", "LoginPassword" : "Chris_12" }
{ "_id" : ObjectId("5eb04ef35637cd592b2a4afe"), "LoginUserName" : "Chris", "LoginPassword" : "" }

結果を見ると、LoginPassword が null のドキュメントだけが除外され、残りの2件(通常の文字列と空文字列)が返されていることがわかります。

ポイントまとめ

  • { フィールド名: { $ne: null } } を使うことで、nullではないドキュメントを検索できる
  • 空文字列("")はnullとは異なるため、$ne: null の条件では除外されずにヒットする
  • 空文字列も除外したい場合は、さらに $ne: ""$exists などの条件を組み合わせるとよい
  1. MySQLで列の値がNULLかNOT NULLかを確認する方法

    MySQLでは、IS NOT NULL演算子を使うことで、列の値がNULLかどうかを簡単に確認できます。この記事では、基本的な構文と実際の使用例をわかりやすく解説します。基本構文select yourColumnName IS NOT NULL from yourTableName;このクエリは、指定した列の値がNULLでなければ 1 を、NULLであれば 0 を返します。テーブルの作成まず、動作確認用のサンプルテーブルを作成しましょう。mysql> create table DemoTable1408     -> (  &nbs

  2. MySQLでNOT NULLの値に対して1を設定する方法(IF関数とIS NOT NULLの使い方)

    MySQLでNOT NULLの値に1を設定するにはMySQLでは、IS NOT NULL演算子とIF()関数を組み合わせることで、値がNULLでない場合に「1」、NULLの場合に「0」を返すことができます。データの存在チェックやフラグ管理など、さまざまな場面で活用できる便利なテクニックです。基本構文NOT NULLかどうかを判定して1を設定する基本構文は以下のとおりです。select if( is not NULL,1,0) as anyAliasName;実際に動作するクエリを見てみましょう。mysql> select if( is not NULL,1,0);このクエリを実行すると、