Dies ist das erwartete Verhalten. Sie können dies einfach mit der "Punktnotation" und der $exists
Betreiber
db.hello.find({ 'hobbies.0': { '$exists': true } } )
Eine andere Möglichkeit, dies zu tun, ist die Verwendung von Aggregation und $isArray
Operator verfügbar in MongoDB 3.2. Dies ist jedoch weniger effizient, weil $redact
führt einen Sammlungsscan durch.
db.hello.aggregate([
{ "$redact": {
"$cond": [
{ $isArray: "$hobbies" },
"$$KEEP",
"$$PRUNE"
]
}}
])