MongoDB の $ne 演算子
Shihab Sikder
2023年6月20日
この記事では、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 は正規表現をサポートしています。 |
著者: Shihab Sikder