To jest oczekiwane zachowanie. Możesz to zrobić po prostu za pomocą "notacji z kropkami" i $exists
operator
db.hello.find({ 'hobbies.0': { '$exists': true } } )
Innym sposobem na to jest użycie agregacji i $isArray
operator dostępny w MongoDB 3.2. Jest to jednak mniej wydajne, ponieważ $redact
wykonuje skanowanie kolekcji.
db.hello.aggregate([
{ "$redact": {
"$cond": [
{ $isArray: "$hobbies" },
"$$KEEP",
"$$PRUNE"
]
}}
])