Questo è il comportamento previsto. Puoi farlo semplicemente usando la "dot notation" e $exists
operatore
db.hello.find({ 'hobbies.0': { '$exists': true } } )
Un altro modo per farlo è utilizzare l'aggregazione e $isArray
operatore disponibile in MongoDB 3.2. Ma questo è meno efficiente perché $redact
esegue una scansione della raccolta.
db.hello.aggregate([
{ "$redact": {
"$cond": [
{ $isArray: "$hobbies" },
"$$KEEP",
"$$PRUNE"
]
}}
])