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

Object.keys, como obter uma lista de chaves no mongodb


Uma consulta como {"colors.*.prestock" : {$gte:30}} não é possível de acordo com SERVER-267 , e duvido que isso seja apoiado nos próximos anos.

Sua melhor aposta é alterar o esquema para uma matriz:
colors: [
 { "color" : "Green", "instock" : 50, ... },
 { "color" : "Yellow", "instock" : 50, ... },
]

Então você pode consultar
db.foo.find( {"colors.prestock" : {$gte:30}} )

Observe que isso retornará o objeto inteiro, incluindo todas as cores, ou seja, também aquelas para as quais a restrição de consulta não é válida. Isso pode ser resolvido usando a estrutura de agregação, mas, novamente, apenas usando $unwind que também requer colors ser uma matriz.