Tôi đã trả lời câu này vài lần về việc chọn tài liệu con một mình từ bộ sưu tập mongo tại đây và tại đây
Đơn giản là không có cách nào để làm điều này hiện tại. Đây là hành vi lọc tài liệu nhúng đa cấp, thông thường bộ lọc phù hợp sẽ trả về toàn bộ tài liệu, không phải các tập hợp con.
Có hai vấn đề còn tồn tại trong mongo liên quan đến toán tử vị trí ($) này trong các trường để trả về giá trị chỉ định và Khả năng sử dụng dữ liệu của tiểu tài liệu có nội dung được sử dụng để đáp ứng truy vấn bằng toán tử $ . (Vui lòng đăng nhập để bình chọn nếu bạn thực sự cần tính năng này)
Và lược đồ thay thế của bạn cũng không hữu ích ở đây.
vì vậy bạn phải lưu trữ từng tính năng trong tài liệu riêng biệt như thế này để làm cho nó hoạt động theo cách bạn muốn
tính năng 1
{
'_id': SomeObjectId,
'name' :'some name',
'value': 'feature 1',
'some_field' : 'zzz'
}
tính năng 2
{
'_id': SomeObjectId,
'name' :'some name',
'value': 'feature 2',
'some_field' : 'zzz'
}
và truy vấn
db.features.find({'_id':someobjectid})
sẽ chỉ trả lại tính năng cụ thể