【问题标题】:How to apply Mongo DB find command for nested dynamic keys如何为嵌套的动态键应用 Mongo DB 查找命令
【发布时间】:2019-12-27 15:08:17
【问题描述】:

想要使用动态键从 Mongo DB 嵌套字段中搜索所有匹配模式。

数据库结构:

_id: 'dsdsdsadadad',
results: {
   tables: {
      jvm: {
        data: [
          {
             Prediction: 1,
             Jvm: 'service_name',
             Status: 'OK'
          },
          {
            second: 'New second set'
          }
      }
   }
}

$ 试用,

db.col_name.find('results.tables.jvm.data.$.Jvm': {'$regexp': 'service.*'})

通过使用$i

db.col_name.find('results.tables.jvm.data.$i.Jvm': {'$regexp': 'service.*'})

同时提供特定的密钥0

db.col_name.find('results.tables.jvm.data.0.Jvm': {'$regexp': 'service.*'})

没有结果!

预期 O/P:

上面的文档以及所有 Jvm 以 service* 关键字开头的地方

谢谢,

【问题讨论】:

    标签: regex mongodb nested mongodb-query


    【解决方案1】:

    您应该直接使用点符号来查询嵌套对象数组:

    db.collection.find({ "results.tables.jvm.data.Jvm": { $regex: "service.*" } })
    

    MongoDB 将尝试在 data 下查找包含至少一个嵌套文档的每个文档,其中 Jvm 字段与您的正则表达式匹配。

    MongoDB Playground

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-21
      • 2019-03-13
      • 2017-04-26
      • 1970-01-01
      相关资源
      最近更新 更多