Sử dụng ký hiệu dấu chấm:
Khi trường chứa tài liệu được nhúng, một truy vấn có thể chỉ định đối sánh chính xác trên tài liệu được nhúng hoặc chỉ định đối sánh theo từng trường riêng lẻ trong tài liệu được nhúng bằng ký hiệu dấu chấm.
db.coll.find({
"accounts._id" :ObjectId("5546329a470019850084a611")
})
Nếu bạn chỉ cần xuất một phần của mảng mà bạn có _ thì bạn có cần sử dụng đô la trong phép chiếu
Toán tử vị trí $ giới hạn nội dung của một từ kết quả truy vấn chỉ chứa phần tử đầu tiên phù hợp với tài liệu truy vấn.
và truy vấn của bạn sẽ giống như sau:
db.coll.find({
"accounts._id" :ObjectId("5546329a470019850084a611")
}, {
"accounts.$.": 1
})
Tái bút nếu bạn cần đầu ra như trong các câu hỏi đã sửa đổi của mình, hãy sử dụng cái này:
db.coll.find({
"accounts._id" :ObjectId("5546329a470019850084a611")
}, {
accounts : 0
})