Detta är det förväntade beteendet. Du kan helt enkelt göra detta med "dot notation" och $exists
operatör
db.hello.find({ 'hobbies.0': { '$exists': true } } )
Ett annat sätt att göra detta är att använda aggregering och
code>$isArray
operatör tillgänglig i MongoDB 3.2. Men detta är mindre effektivt eftersom $redact
gör en samlingsskanning.
db.hello.aggregate([
{ "$redact": {
"$cond": [
{ $isArray: "$hobbies" },
"$$KEEP",
"$$PRUNE"
]
}}
])