Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Tìm tài liệu MongoDB chứa trường cụ thể

Để tìm tài liệu chứa trường cụ thể, sử dụng toán tử $exists.

Tạo collection với mảng ClientDetails có trường ClientLastName tùy chọn:

> db.demo247.insertOne({"ClientDetails":[{"ClientFirstName":"Chris","ClientAge":34}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e46b2a31627c0c63e7dba69") }
> db.demo247.insertOne({"ClientDetails":[{"ClientFirstName":"John","ClientLastName":"Smith","ClientAge":31}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e46b2be1627c0c63e7dba6a") }
> db.demo247.insertOne({"ClientDetails":[{"ClientFirstName":"David","ClientAge":33}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e46b2cd1627c0c63e7dba6b") }
> db.demo247.insertOne({"ClientDetails":[{"ClientFirstName":"David","ClientLastName":"Miller","ClientAge":31}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e46b2de1627c0c63e7dba6c") }

Hiển thị dữ liệu (chỉ 2/4 tài liệu có ClientLastName):

> db.demo247.find().pretty();
{ "_id" : ObjectId("5e46b2a31627c0c63e7dba69"), "ClientDetails" : [ { "ClientFirstName" : "Chris", "ClientAge" : 34 } ] }
{ "_id" : ObjectId("5e46b2be1627c0c63e7dba6a"), "ClientDetails" : [ { "ClientFirstName" : "John", "ClientLastName" : "Smith", "ClientAge" : 31 } ] }
{ "_id" : ObjectId("5e46b2cd1627c0c63e7dba6b"), "ClientDetails" : [ { "ClientFirstName" : "David", "ClientAge" : 33 } ] }
{ "_id" : ObjectId("5e46b2de1627c0c63e7dba6c"), "ClientDetails" : [ { "ClientFirstName" : "David", "ClientLastName" : "Miller", "ClientAge" : 31 } ] }

Truy vấn tìm tài liệu có ClientLastName trong mảng ClientDetails:

> db.demo247.find({"ClientDetails.ClientLastName":{$exists:true}});

Kết quả trả về 2 tài liệu có ClientLastName:

{ "_id" : ObjectId("5e46b2be1627c0c63e7dba6a"), "ClientDetails" : [ { "ClientFirstName" : "John", "ClientLastName" : "Smith", "ClientAge" : 31 } ] }
{ "_id" : ObjectId("5e46b2de1627c0c63e7dba6c"), "ClientDetails" : [ { "ClientFirstName" : "David", "ClientLastName" : "Miller", "ClientAge" : 31 } ] }