"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
在我的数据库中创建了更多集合。
答案 0 :(得分:0)
如果您不希望地图缩减的结果保持不变,请使用inline_map_reduce
代替map_reduce
:
results = db.coll._inline_map_reduce(m, r, query={"tags": {"$ne": ''}, "organization":orgid}, safe=True)
请注意,如果结果集符合单个文档的16MB限制,则只能使用此方法。