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

Tìm document chứa trường cụ thể trong MongoDB

Sử dụng toán tử $exists để tìm document có chứa trường xác định. Tạo collection với document lồng object:

> db.findDocumentContainsSpecificFieldDemo.insertOne({"ProductPrices": {"Product1": 10, "Product2": 50}});
{ "acknowledged" : true, "insertedId" : ObjectId("5cf2385bb64a577be5a2bc14") }
> db.findDocumentContainsSpecificFieldDemo.insertOne({"ProductPrices": {"Product3": 150, "Product7": 100, "Product5": 250}});
{ "acknowledged" : true, "insertedId" : ObjectId("5cf2387eb64a577be5a2bc15") }

Hiển thị tất cả document:

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

Kết quả:

{ "_id" : ObjectId("5cf2385bb64a577be5a2bc14"), "ProductPrices" : { "Product1" : 10, "Product2" : 50 } }
{ "_id" : ObjectId("5cf2387eb64a577be5a2bc15"), "ProductPrices" : { "Product3" : 150, "Product7" : 100, "Product5" : 250 } }

Truy vấn tìm document có trường Product2 bên trong object ProductPrices (dùng dot notation):

> db.findDocumentContainsSpecificFieldDemo.find({"ProductPrices.Product2": {$exists: true}});

Kết quả (chỉ document đầu tiên có Product2):

{ "_id" : ObjectId("5cf2385bb64a577be5a2bc14"), "ProductPrices" : { "Product1" : 10, "Product2" : 50 } }