C'est le comportement attendu. Vous pouvez simplement le faire en utilisant la "dot notation" et le $exists
opérateur
db.hello.find({ 'hobbies.0': { '$exists': true } } )
Une autre façon de procéder consiste à utiliser l'agrégation et le $isArray
opérateur disponible dans MongoDB 3.2. Mais c'est moins efficace car $redact
effectue une analyse de collection.
db.hello.aggregate([
{ "$redact": {
"$cond": [
{ $isArray: "$hobbies" },
"$$KEEP",
"$$PRUNE"
]
}}
])