MongoDB查询帮助 - 查询子对象中任何键的值我想对此集合执行查询,以确定哪些文档具有与特定值匹配的任何键。这可能吗?我有一组文件,如:{
"things": {
"thing1": "red",
"thing2": "blue",
"thing3": "green"
}}
3 回答
慕后森
TA贡献1802条经验 获得超5个赞
我建议更改架构,以便您可以在MongoDB中实际执行合理的查询。
从:
{ "userId": "12347", "settings": { "SettingA": "blue", "SettingB": "blue", "SettingC": "green" }}
至:
{ "userId": "12347", "settings": [ { name: "SettingA", value: "blue" }, { name: "SettingB", value: "blue" }, { name: "SettingC", value: "green" } ] }
然后,您可以索引"settings.value"
,并执行如下查询:
db.settings.ensureIndex({ "settings.value" : 1})db.settings.find({ "settings.value" : "blue" })
更改真的很简单...,因为它将设置名称和设置值移动到完全可索引的字段,并将设置列表存储为数组。
如果您无法更改架构,但要注意它在性能方面基本上是最糟糕的情况,并且它不能有效地与索引一起使用。
- 3 回答
- 0 关注
- 3868 浏览
添加回答
举报
0/150
提交
取消