Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.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
Javascript 如何使用嵌入文档的值从JSON文档数组中高效地访问JSON文档?_Javascript_Arrays_Json_Performance - Fatal编程技术网

Javascript 如何使用嵌入文档的值从JSON文档数组中高效地访问JSON文档?

Javascript 如何使用嵌入文档的值从JSON文档数组中高效地访问JSON文档?,javascript,arrays,json,performance,Javascript,Arrays,Json,Performance,我需要JavaScript中的方法/策略来从JSON数组访问文档。我需要一些类似MongoDB Shell中$elemMatch的东西 数据格式如下: [ { a : '1', b : '2', c : '3' }, { a : '4', b : '5', c : '6' }, {...}, {...} ] 所以所有文档都有相同的键,当我有'a'值时,我需要访问'c'值

我需要JavaScript中的方法/策略来从JSON数组访问文档。我需要一些类似MongoDB Shell中$elemMatch的东西

数据格式如下:

[
    { 
      a : '1',
      b : '2',
      c : '3'
    },
    { 
      a : '4',
      b : '5',
      c : '6'
    },
    {...},
    {...}
]
所以所有文档都有相同的键,当我有'a'值时,我需要访问'c'值


是否有任何方法可以在JavaScript中高效地实现这一点,即不必在整个数组中循环?这将构成更大查询功能的一部分,性能非常重要。

您可以对嵌套数据使用find命令。检查javascript语法和中接受的答案,以了解您尝试执行的操作的总体思路


编辑:对于javascript,您可以尝试将match命令与聚合管道框架()一起使用

什么是“当我有‘a’值时访问‘c’值”?我有‘a’值(来自前面的步骤),我需要找到‘c’的对应值。例如,如果我有a=4,我需要查询数组,将c=6返回给我。我正在寻找一种用JavaScript而不是MongoDB实现这一点的方法。我现在就编辑这个问题。这不是我想要的,或者我误解了你。我已经查询了数据库,并收到了一个非常大的多层文档。现在,在文档中嵌入了这个数组,我需要根据文档中的另一个字段从中检索一个特定字段。在这个阶段,文档已经在JavaScript函数的内存中了。好的,等等,我想我理解你的意思。您是否建议我修改查询以使用聚合框架来过滤收到的文档?那有可能吗?由于数组位于主文档的深处,我需要其余的数据,那么我如何从数组中只提取一个文档呢?再看一遍,我认为我的问题无法通过$match阶段解决。因为我已经有了一个完全索引并返回正确文档的查询。我的问题在于有效地从检索到的文档中提取正确的数据。哦,我现在明白你的意思了。。。那么,您还需要从主文档中获取哪些其他数据?难道你不能修改你的查询以获得你需要的所有数据,然后使用聚合功能进行过滤吗?查询该数据后,为什么需要更多字段?