MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Object.keys, comment obtenir une liste de clés dans mongodb

Une requête du type {"colors.*.prestock" : {$gte:30}} n'est pas possible selon SERVER-267 , et je doute que cela soit pris en charge dans les prochaines années.

Votre meilleur pari est de changer le schéma en tableau :

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

Ensuite, vous pouvez interroger

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

Notez que cela renverra l'objet entier, y compris toutes les couleurs, c'est-à-dire également celles pour lesquelles la contrainte de requête ne tient pas. Cela pourrait être résolu en utilisant le cadre d'agrégation, mais encore une fois, en utilisant uniquement $unwind qui nécessite également des colors être un tableau.