Sử dụng dot notation (ký hiệu dấu chấm) để truy cập trường trong tài liệu lồng nhau. Tạo collection:
> db.demo591.insert([
... { "Name": "John", "Age": 23 },
... { "Name": "Carol", "Age": 26 },
... { "Name": "Robert", "Age": 29, "details": [ { "Email":"Robert@gmail.com","CountryName":"US" }, { "Post":35 } ] }
... ]);
BulkWriteResult({ "nInserted" : 3 })
Hiển thị dữ liệu (chỉ Robert có details):
> db.demo591.find();
{ "_id" : ObjectId("5e92dd08fd2d90c177b5bcd3"), "Name" : "John", "Age" : 23 }
{ "_id" : ObjectId("5e92dd08fd2d90c177b5bcd4"), "Name" : "Carol", "Age" : 26 }
{ "_id" : ObjectId("5e92dd08fd2d90c177b5bcd5"), "Name" : "Robert", "Age" : 29, "details" : [ { "Email" : "Robert@gmail.com", "CountryName" : "US" }, { "Post" : 35 } ] }
Truy vấn tìm tài liệu có details.Email = "Robert@gmail.com":
> db.demo591.find({"details.Email": "Robert@gmail.com"});
Kết quả:
Dot notation rules:
"details.Email"truy cập trường Email bên trong đối tượng trong mảng details- MongoDB tự động "đi vào" mảng để kiểm tra từng phần tử
- Hoạt động cả khi details là mảng đối tượng