Đây là hành vi được mong đợi. Bạn chỉ có thể thực hiện việc này bằng cách sử dụng "ký hiệu dấu chấm" và $exists
nhà điều hành
db.hello.find({ 'hobbies.0': { '$exists': true } } )
Một cách khác để thực hiện việc này là sử dụng tính năng tổng hợp và $isArray
toán tử có sẵn trong MongoDB 3.2. Nhưng điều này kém hiệu quả hơn vì $redact
quét bộ sưu tập.
db.hello.aggregate([
{ "$redact": {
"$cond": [
{ $isArray: "$hobbies" },
"$$KEEP",
"$$PRUNE"
]
}}
])