Object.keys,如何获取mongodb中的键列表
{ "_id": "1", "style": "13123", "category": "dress", "colors": { "Black": { "prestock": 50, "instock": 60, "inactive": 0 }, "Blue": { "prestock": 30, "instock": 0, "inactive": 0 }, "Red": { "prestock": 10, "instock": 60, "inactive": 0 } } }
我有上面的json,我需要访问prestock,instock和不活动。 但颜色的价值将根据风格而改变。 例如:
{ "_id": "2", "style": "14321", "category": "top", "colors": { "Green": { "prestock": 50, "instock": 60, "inactive": 0 }, "Yellow": { "prestock": 50, "instock": 60, "inactive": 0 } } }
我怎样才能在MongoDB中查询? 这是否与Object.keys(obj)有关?
如果这是一个重复的问题,请指导我!
谢谢!
根据SERVER-267 , {"colors.*.prestock" : {$gte:30}}
是不可能的,我怀疑这个问题在未来的几年中会得到支持。
你最好的select是把模式改成一个数组:
colors: [ { "color" : "Green", "instock" : 50, ... }, { "color" : "Yellow", "instock" : 50, ... }, ]
然后你可以查询
db.foo.find( {"colors.prestock" : {$gte:30}} )
请注意,这将返回整个对象,包括所有颜色,即查询约束不包含的那些对象。 这可以使用聚合框架来解决,但是同样只使用$unwind
,这也需要colors
是一个数组。
这是你在找什么? MongoDB获取集合中所有键的名称
如果没有,那么应用程序必须具有包含所有可能组合的键或枚举值的列表,您将不得不查询并通过它们。