Este é o comportamento esperado. Você pode simplesmente fazer isso usando a "notação de ponto" e o
$exists
operador db.hello.find({ 'hobbies.0': { '$exists': true } } )
Outra maneira de fazer isso é usando a agregação e o
$isArray
operador disponível no MongoDB 3.2. Mas isso é menos eficiente porque $redact
faz uma varredura de coleção. db.hello.aggregate([
{ "$redact": {
"$cond": [
{ $isArray: "$hobbies" },
"$$KEEP",
"$$PRUNE"
]
}}
])