为了账号安全,请及时绑定邮箱和手机立即绑定

MongoDB查询帮助 - 查询子对象中任何键的值

MongoDB查询帮助 - 查询子对象中任何键的值

函数式编程 2019-08-02 17:21:43
MongoDB查询帮助 - 查询子对象中任何键的值我想对此集合执行查询,以确定哪些文档具有与特定值匹配的任何键。这可能吗?我有一组文件,如:{     "things": {         "thing1": "red",         "thing2": "blue",         "thing3": "green"     }}编辑:为了简洁
查看完整描述

3 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

我建议更改架构,以便您可以在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" })

更改真的很简单...,因为它将设置名称和设置值移动到完全可索引的字段,并将设置列表存储为数组。

如果您无法更改架构,但要注意它在性能方面基本上是最糟糕的情况,并且它不能有效地与索引一起使用。


查看完整回答
反对 回复 2019-08-02
  • 3 回答
  • 0 关注
  • 664 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信