MongoDB cho phép truy xuất trực tiếp một trường cụ thể bên trong đối tượng nhúng (embedded object) bằng cách sử dụng dot notation kết hợp với projection trong find().
Dữ liệu mẫu
> db.demo305.insertOne( { _id: 101, FirstName : 'Chris', details : { "0":"102", "1":"10001" } } );
{ "acknowledged" : true, "insertedId" : 101 }
> db.demo305.insertOne( { _id: 102, FirstName : 'David', details : { "0":"103", "1":"10002" } } );
{ "acknowledged" : true, "insertedId" : 102 }
Xem dữ liệu gốc
> db.demo305.find();
{ "_id" : 101, "FirstName" : "Chris", "details" : { "0" : "102", "1" : "10001" } }
{ "_id" : 102, "FirstName" : "David", "details" : { "0" : "103", "1" : "10002" } }
Truy xuất key "0" trong details của tài liệu _id:102
> db.demo305.find({_id:102},{'details.0':1});
Kết quả
{ "_id" : 102, "details" : { "0" : "103" } }
Giải thích: Projection {'details.0':1} chỉ giữ lại trường details.0 (và _id mặc định). Cú pháp dot notation details.0 truy cập vào key "0" bên trong đối tượng details. Kỹ thuật này hữu ích khi đối tượng nhúng có nhiều key và bạn chỉ cần một số key cụ thể.