MongoDB の $ne 演算子

Shihab Sikder 2023年6月20日
  1. MongoDB の $ne 演算子
  2. $not 演算子と $ne 演算子の違い
MongoDB の $ne 演算子

この記事では、MongoDB で $ne 演算子がどのように機能するかについて説明します。 さらに、$not 演算子との違いを列挙します。

MongoDB の $ne 演算子

$ne は MongoDB の演算子で、等しくないことを表します。 これはフィールドの値を比較し、それが等しいかどうかをチェックします。

構文:

{field: {$ne: value}}

employee コレクションに次のドキュメントがあるとします。

> db.employee.find().pretty()
{"_id":1,   "name":"Alice", "salary": 1500, "gender":"Female"}
{"_id":2,   "name":"Bob",   "salary": 2500, "gender":"male"}
{"_id":3,   "name":"Jhon",  "salary": 3500, "gender":"male"}
{"_id":4,   "name":"Grace", "salary": 4500, "gender":"female"}

ここで、すべての male 従業員を表示する必要があります。 次に、クエリは次のようになります。

> db.employee.find({gender:{$ne: female}}).pretty()
{"_id":2,   "name":"Bob",   "salary": 2500, "gender":"male"}
{"_id":3,   "name":"Jhon",  "salary": 3500, "gender":"male"}

別の例として、給与が 4000 以上の女性を表示するように求められたとします。したがって、クエリは次のようになります。

> db.employee.find({gender:{$ne: male}, salary:{$gte:4000}}).pretty()
{"_id":4,   "name":"Grace", "salary": 4500, "gender":"female"}

$not 演算子と $ne 演算子の違い

上記の $ne 演算子の構文を見てきました。 お気づきかもしれませんが、$ne はパラメーターとして値のみを取ります。

ドキュメントが指定されたフィールドに正確な値を持っているかどうかを確認するだけです。 場合によっては、定数値ではなく論理式が必要になることがあります。 次に、$not を使用します。

構文:

{ field: { $not: { <operator-expression> } } }

$ne$not の類似点と相違点は次のとおりです。

$ne $not
パラメータとして値を取ります。 パラメータとして論理式を取ります。
内部のネストされたクエリはサポートされていません。 $not 演算子内でネストされたクエリを使用できます。
$ne は、フィールドを含まないドキュメントを含め、フィールドの値が指定された値と等しくないドキュメントを選択します。 $not は、フィールドを含まないドキュメントを含め、演算子式に一致しないドキュメントを選択します。
$ne は正規表現をサポートしていません。 $not は正規表現をサポートしています。

$ne$not の詳細については、添付の公式ドキュメントを参照してください。

著者: Shihab Sikder
Shihab Sikder avatar Shihab Sikder avatar

I'm Shihab Sikder, a professional Backend Developer with experience in problem-solving and content writing. Building secure, scalable, and reliable backend architecture is my motive. I'm working with two companies as a part-time backend engineer.

LinkedIn Website

関連記事 - MongoDB Operator