cpp
如何只检索一个级别的密钥?例如。我想只检索root: {
dir: {
subDir: {
subSubDir: {
...
},
...
},
subDir_2: {
...
}
},
dir_2: {
...
},
...
}
下的密钥。结果应该包含[dir
,subDir
,...]而不是其他内容:没有值,没有嵌套键等。最有效的方法是什么?
答案 0 :(得分:0)
我认为实现目标的唯一方法是使用递归 map-reduce。通过这种方式,您可以处理想要达到的深度。 您必须检查每个深度级别,以查看是否只有一个简单的元素,一个对象或一个数组。此外,性能不会很好,因为map-reduce处理数据的速度很慢,因为它们必须将文档从BSON转换为JSON并返回工作。 我使用这种方法为mongoDB构建模式分析器。如果你想看一下,这是the link 也许你可以在分片集群中使用map-reduce,但它最好是Hadoop!或Elasticsearch以获得更高效的性能。