MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Abfrage nach Array-Typ – MongoDB

Dies ist das erwartete Verhalten. Sie können dies einfach mit der "Punktnotation" und der $exists Betreiber

db.hello.find({ 'hobbies.0': { '$exists': true } } )

Eine andere Möglichkeit, dies zu tun, ist die Verwendung von Aggregation und $isArray Operator verfügbar in MongoDB 3.2. Dies ist jedoch weniger effizient, weil $redact führt einen Sammlungsscan durch.

 db.hello.aggregate([ 
    { "$redact": { 
        "$cond": [
             { $isArray: "$hobbies" }, 
             "$$KEEP", 
             "$$PRUNE" 
        ]
    }}
])