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

フィールドがnullであるか、MongoDBで設定されていないレコードをクエリするにはどうすればよいですか?


2つのケースを回避しましょう-

ケース1 −フィールドが存在し、nullに設定されている場合の構文は次のとおりです。

db.yourCollectionName.count({yourFieldName: null});

ケース1 −フィールドが存在せず、設定されていない場合の構文は次のとおりです。

db.yourCollectionName.count({yourFieldName: {$exists: false}});

上記の両方の構文を理解するために、ドキュメントを使用してコレクションを作成しましょう。ドキュメントを使用してコレクションを作成するためのクエリは次のとおりです-

> db.fieldIsNullOrNotSetDemo.insertOne({"EmployeeName":"Larry","EmployeeAge":null,"EmployeeSalary":18500});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8a995c6cea1f28b7aa07fe")
}
> db.fieldIsNullOrNotSetDemo.insertOne({"EmployeeName":"Bob","EmployeeAge":21,"EmployeeSalary":23500});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8a99836cea1f28b7aa07ff")
}

> db.fieldIsNullOrNotSetDemo.insertOne({"EmployeeName":"Carol","EmployeeSalary":45500});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8a999b6cea1f28b7aa0800")
}
> db.fieldIsNullOrNotSetDemo.insertOne({"EmployeeName":"Mike","EmployeeAge":null,"EmployeeSalary":45500});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8a99bb6cea1f28b7aa0801")
}
> db.fieldIsNullOrNotSetDemo.insertOne({"EmployeeName":"Ramit","EmployeeSalary":85500});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8a99d76cea1f28b7aa0802")
}

find()メソッドを使用して、コレクションのすべてのドキュメントを表示します。クエリは次のとおりです-

> db.fieldIsNullOrNotSetDemo.find().pretty();

以下は出力です-

{
   "_id" : ObjectId("5c8a995c6cea1f28b7aa07fe"),
   "EmployeeName" : "Larry",
   "EmployeeAge" : null,
   "EmployeeSalary" : 18500
}
{
   "_id" : ObjectId("5c8a99836cea1f28b7aa07ff"),
   "EmployeeName" : "Bob",
   "EmployeeAge" : 21,
   "EmployeeSalary" : 23500
}
{
   "_id" : ObjectId("5c8a999b6cea1f28b7aa0800"),
   "EmployeeName" : "Carol",
   "EmployeeSalary" : 45500
}
{
   "_id" : ObjectId("5c8a99bb6cea1f28b7aa0801"),
   "EmployeeName" : "Mike",
   "EmployeeAge" : null,
   "EmployeeSalary" : 45500
}
{
   "_id" : ObjectId("5c8a99d76cea1f28b7aa0802"),
   "EmployeeName" : "Ramit",
   "EmployeeSalary" : 85500
}

ケース1

フィールドEmployeeAgeが存在し、nullに設定されています。

クエリは次のとおりです-

> db.fieldIsNullOrNotSetDemo.count({EmployeeAge: null});

以下は出力です-

4

ケース2

フィールド「EmployeeAge」は存在せず、設定されていません。クエリは次のとおりです-

> db.fieldIsNullOrNotSetDemo.count({EmployeeAge: {$exists: false}});

以下は出力です-

2

  1. MongoDBはnullではないかどうかをチェックしていますか?

    $ neを使用して、nullでないことを確認します。ドキュメントを使用してコレクションを作成しましょう- > db.demo764.insertOne({"LoginUserName":"Chris","LoginPassword":"Chris_12"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5eb04ee55637cd592b2a4afc&

  2. MySQLのNOTNULL値に1を設定します

    NOT NULLを設定するには、ISNOTNULLを使用して値を見つけます。構文は次のとおりです- select if('' is not NULL,1,0) as anyAliasName; これが実際のクエリです- mysql> select if('' is not NULL,1,0); これにより、次の出力が生成されます- +------------------------+ | if('' is not NULL,1,0) | +------------------------+ |