【问题标题】:mongodb map/reduce or groupmongodb map/reduce 或组
【发布时间】:2012-07-25 07:48:40
【问题描述】:

我有一个包含候选人详细信息的 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 生成了前 3 名资格,它计算每个资格的出现次数,并过滤了前 3 名

结果是

{"BS":4,"MS":3,"Diploma":2}

但是这个 map/reduce 每次都会创建一个临时集合,所以我认为它会减慢我的应用程序的速度,我们可以在这种情况下使用 group 语句吗? 或者当我使用 python 时,我可以生成一个使用 counter() 的所有资格列表

哪个可行且耗时少?

【问题讨论】:

标签: mongodb pymongo


【解决方案1】:

我们可以在这种情况下使用组语句吗?

是的。

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

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

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

【讨论】:

    猜你喜欢
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多