MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Object.keys, come ottenere un elenco di chiavi in ​​mongodb

Una query come {"colors.*.prestock" : {$gte:30}} non è possibile secondo SERVER-267 , e dubito che questo sarà supportato nei prossimi anni.

La soluzione migliore è cambiare lo schema in un array:

colors: [
 { "color" : "Green", "instock" : 50, ... },
 { "color" : "Yellow", "instock" : 50, ... },
]

Quindi puoi interrogare

db.foo.find( {"colors.prestock" : {$gte:30}} )

Nota che questo restituirà l'intero oggetto, inclusi tutti i colori, cioè anche quelli per i quali il vincolo della query non è valido. Questo potrebbe essere risolto usando il framework di aggregazione, ma ancora, usando solo $unwind che richiede anche colors essere un array.