Tạo collection với document chứa mảng object:
> db.queryForPartialObjectDemo.insertOne({_id: new ObjectId(), "StudentDetails": [{"StudentId": 1, "StudentName": "Chris"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdfcf55bf3115999ed51206") }
> db.queryForPartialObjectDemo.insertOne({_id: new ObjectId(), "StudentDetails": [{"StudentId": 2, "StudentName": "David"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdfcf55bf3115999ed51207") }
Hiển thị tất cả document:
> db.queryForPartialObjectDemo.find().pretty();
Kết quả:
{ "_id" : ObjectId("5cdfcf55bf3115999ed51206"), "StudentDetails" : [ { "StudentId" : 1, "StudentName" : "Chris" } ] }
{ "_id" : ObjectId("5cdfcf55bf3115999ed51207"), "StudentDetails" : [ { "StudentId" : 2, "StudentName" : "David" } ] }
Cách 1: Khớp chính xác toàn bộ object trong mảng
Truy vấn tìm document có StudentDetails chứa object chính xác {StudentId: 1, StudentName: "Chris"}:
> db.queryForPartialObjectDemo.find({StudentDetails: {StudentId: 1, "StudentName" : "Chris"}});
Kết quả:
{ "_id" : ObjectId("5cdfcf55bf3115999ed51206"), "StudentDetails" : [ { "StudentId" : 1, "StudentName" : "Chris" } ] }
Cách 2: Sử dụng dot notation (khớp một phần)
Truy vấn tìm document có StudentName = "Chris" bên trong mảng StudentDetails:
> db.queryForPartialObjectDemo.find({"StudentDetails.StudentName": "Chris"});
Kết quả:
{ "_id" : ObjectId("5cdfcf55bf3115999ed51206"), "StudentDetails" : [ { "StudentId" : 1, "StudentName" : "Chris" } ] }