MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Consulta por tipo de array - MongoDB


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" 
        ]
    }}
])