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

Object.keys, wie man eine Liste von Schlüsseln in Mongodb erhält

Eine Abfrage wie {"colors.*.prestock" : {$gte:30}} ist laut SERVER-267 nicht möglich , und ich bezweifle, dass dies in den nächsten Jahren unterstützt wird.

Am besten ändern Sie das Schema in ein Array:

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

Dann können Sie abfragen

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

Beachten Sie, dass dies das gesamte Objekt einschließlich aller Farben zurückgibt, d. h. auch diejenigen, für die die Abfragebeschränkung nicht gilt. Dies könnte mit dem Aggregations-Framework gelöst werden, aber wiederum nur mit $unwind was auch colors erfordert ein Array sein.