Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何为嵌套的动态键应用Mongo DB find命令_Regex_Mongodb_Nested_Mongodb Query - Fatal编程技术网

Regex 如何为嵌套的动态键应用Mongo DB find命令

Regex 如何为嵌套的动态键应用Mongo DB find命令,regex,mongodb,nested,mongodb-query,Regex,Mongodb,Nested,Mongodb Query,要使用动态键从Mongo DB嵌套字段中搜索所有匹配模式 数据库结构: _id: 'dsdsdsadadad', results: { tables: { jvm: { data: [ { Prediction: 1, Jvm: 'service_name', Status: 'OK' }, { sec

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

数据库结构:

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

db.col\u name.find('results.tables.jvm.data.$.jvm':{'$regexp':'service.*'})

使用
$i

db.col\u name.find('results.tables.jvm.data.$i.jvm':{$regexp':'service.*})

通过同时给出特定键
0

db.col\u name.find('results.tables.jvm.data.0.jvm':{'$regexp':'service.*'})

没有结果

预期O/p:

在上面的文档中,所有Jvm都以
service*
关键字开头


谢谢,

您应该直接使用点表示法来查询嵌套对象数组:

db.collection.find({ "results.tables.jvm.data.Jvm": { $regex: "service.*" } })
MongoDB将尝试在
data
having
Jvm
字段下查找至少包含一个嵌套文档的每个文档,这些文档与正则表达式匹配