Computer >> Máy Tính >  >> Lập trình >> MongoDB

Làm cách nào để truy vấn các bản ghi trong đó trường rỗng hoặc không được đặt trong MongoDB?

Hãy để chúng tôi giải quyết hai trường hợp -

Trường hợp 1 - Cú pháp như sau khi trường hiện diện và được đặt thành null.

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

Trường hợp 1 - Cú pháp như sau khi trường không có và không được đặt.

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

Để hiểu cả hai cú pháp trên, chúng ta hãy tạo một bộ sưu tập với tài liệu. Truy vấn để tạo một bộ sưu tập với một tài liệu như sau -

> 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")
}

Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find (). Truy vấn như sau -

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

Sau đây là kết quả -

{
   "_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
}

Trường hợp 1 -

Trường EmployeeAge hiện có và được đặt thành null.

Truy vấn như sau -

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

Sau đây là kết quả -

4

Trường hợp 2 -

Trường 'EmployeeAge' không có và không được đặt. Truy vấn như sau -

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

Sau đây là kết quả -

2