mongodb映射/减少或组

mongodb映射/减少或组,mongodb,pymongo,Mongodb,Pymongo,我有一个mongodb数据和候选人的详细信息 属性是基于列表的限定 doc1: "qualification" : ["BS","Diploma"] doc1: "qualification" : ["BS","MS"] doc1: "qualification" : ["PG"] doc1: "qualification" : ["Diploma"] doc1: "qualification" : ["BS"] doc1: "qualification" : ["MS"] doc1

我有一个mongodb数据和候选人的详细信息

属性是基于列表的限定

doc1:  "qualification" : ["BS","Diploma"]
doc1:  "qualification" : ["BS","MS"]
doc1:  "qualification" : ["PG"]
doc1:  "qualification" : ["Diploma"]
doc1:  "qualification" : ["BS"]
doc1:  "qualification" : ["MS"]
doc1:  "qualification" : ["BS","MS","Phd"]
在此基础上,我使用mongodb map/reduce生成了前三名资格,它计算每个资格的出现次数,并过滤了前三名

结果是

{"BS":4,"MS":3,"Diploma":2}
但是这个map/reduce每次都会创建一个临时集合,所以我认为它会减慢我的应用程序的速度,我们可以在这个场景中使用group语句吗? 或者,当我使用python时,我可以生成一个使用counter()的所有限定条件的列表吗

哪种方法可行且耗时更少

我们可以在这个场景中使用group语句吗

但是,我上次检查的
group
命令是单线程的,因此在分片配置上可能速度较慢

您还可以查看2.1和2.2中提供的。这也将避免临时收集

最后一个选项是在python客户机中处理数据。对于如此简单的事情,完全可以简单地循环数据并将结果存储在内存中

我们可以在这个场景中使用group语句吗

但是,我上次检查的
group
命令是单线程的,因此在分片配置上可能速度较慢

您还可以查看2.1和2.2中提供的。这也将避免临时收集

最后一个选项是在python客户机中处理数据。对于如此简单的内容,完全可以简单地循环数据并将结果存储在内存中。

您可以使用,而不必每次都创建临时集合。您可以使用,而不必每次都创建临时集合。