我正在使用pymongo使用mapreduced函数来获得结果但我想要替换地图减少像组一样

时间:2012-07-24 12:22:07

标签: mongodb count pymongo

"tags" : ["MongoDB", "Map/Reduce", "Recipe"]

m = Code("function () {""  this.tags.forEach(function(z) {""    emit(z, 1);""  });""}")

r = Code("function (key, values) {var count = 0;for (var i = 0; i < values.length; i++) {count += values[i];}return count;}")

db.coll.map_reduce(m,r, out = "map_tags",query={"tags": {"$ne": ''},"organization":orgid},safe=True)

我可以通过上面的代码获得正确的结果,但我需要替代解决方案。 因为map_reduce在我的数据库中创建了更多集合。

1 个答案:

答案 0 :(得分:0)

如果您不希望地图缩减的结果保持不变,请使用inline_map_reduce代替map_reduce

results = db.coll._inline_map_reduce(m, r, query={"tags": {"$ne": ''}, "organization":orgid}, safe=True)

请注意,如果结果集符合单个文档的16MB限制,则只能使用此方法。