-1
"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私のデータベースでより多くのコレクションを作成する ためです。

4

1 に答える 1

0

map-reduce の結果を保持したくない場合は、inline_map_reduce代わりにmap_reduce次を使用します。

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

結果セットが 1 つのドキュメントの 16 MB の制限内に収まる場合にのみ、このアプローチを使用できることに注意してください。

于 2012-07-24T13:38:37.300 に答える