Toto je očekávané chování. Můžete to udělat jednoduše pomocí "tečkové notace" a $exists
operátor
db.hello.find({ 'hobbies.0': { '$exists': true } } )
Dalším způsobem, jak toho dosáhnout, je použití agregace a $isArray
operátor dostupný v MongoDB 3.2. To je však méně efektivní, protože $redact
provede sken sbírky.
db.hello.aggregate([
{ "$redact": {
"$cond": [
{ $isArray: "$hobbies" },
"$$KEEP",
"$$PRUNE"
]
}}
])