私のサンプルJsonオブジェクトは次のとおりです
{
"numRecommenders": 0,
"publicProfileUrl": "http://www.linkedin.com/pub/heena-vyas/16/786/826",
"positions": {
"total": 1,
"positionList": [
{
"id": "91286566",
"title": "senior executive",
"company": {
"name": "Reliance",
"industry": "Oil & Energy",
"type": "Public Company",
"size": "10,001+ employees"
},
"isCurrent": true
}
]
},
私のmapreduce関数は以下のとおりです。
String map = "function() {"
+"for (index in this.positions.positionList) {"
+"emit(this.positions.positionList[index].company.name, {count: 1});"
+"}}";
String reduce = "function(key, values) {" + "var sum = 0;"
+ "values.forEach(function(value) {" + "sum += value['count'];"
+ "});" + "return {count: sum};" + "};";
MapReduceCommand mapReduceCommand = new MapReduceCommand(
mongoCollection, map, reduce.toString(), null,
MapReduceCommand.OutputType.INLINE, null);
MapReduceOutput out = mongoCollection.mapReduce(mapReduceCommand);
しかし、現在、mongoDbの150万個のオブジェクトを使用しています。
次の例外が発生します。
スレッド"main"の例外com.mongodb.CommandResult$CommandFailure:コマンドが失敗しました[コマンドが失敗しました[mapreduce] {"assertion":"メモリ内のデータが多すぎますmap/ reduce"、 "assertionCode":13604、 "errmsg": " dbアサーションの失敗"、" ok ":0.0} at com.mongodb.CommandResult.getException(CommandResult.java:70)at com.mongodb.CommandResult.throwOnError(CommandResult.java:116)at com.mongodb.DBCollection.mapReduce( DBCollection.java:961)com.mongo.dboperations.MongoStorage.runGroupCommand(MongoStorage.java:126)
com.mongo.dboperations.MongoStorage.main(MongoStorage.java:218)で
この例外を解決するにはどうすればよいですか?