中的元素我有一个蒙戈DB收集已entried这样前n个MongoDB的集合
{
_id:
sender:
receiver:
}
反正是有让前N在发送器和接收器/集合中不使用的MapReduce?我正在使用mongodb红宝石驱动程序。
中的元素我有一个蒙戈DB收集已entried这样前n个MongoDB的集合
{
_id:
sender:
receiver:
}
反正是有让前N在发送器和接收器/集合中不使用的MapReduce?我正在使用mongodb红宝石驱动程序。
如果可能,我会检查MongoDB 2.2(下一个稳定版本)中提供的新聚合框架。这是你想要完成的吗?
输入:
{_id:1, name:"Jenna"}
{_id:2, name:"Jenna"}
{_id:3, name:"Tom"}
{_id:4, name:"Tom"}
{_id:5, name:"George"}
{_id:6, name:"George"}
命令:
> db.unicorn.aggregate({$group: {_id: "$name"}},{$limit:2})
结果:
{
"result" : [
{
"_id" : "George"
},
{
"_id" : "Tom"
}
],
"ok" : 1
}
www.mongodb.org/display/DOCS/Aggregation+Framework
这是一个很好的答案,但事情是我不能使用新版本。可以告诉我如何继续使用mapreduce函数吗? – user1429322 2012-08-02 02:51:03
有限制参数关联d与地图缩小,但文档说,你不能在分片群集中使用它。你可以输出map reduce的结果到一个新的集合,并对集合进行.find()。limit(n)查询吗?或者你是否试图避免长时间运行的聚合命令,这就是为什么你有兴趣首先限制输出?或者我误解了你的问题?
输入:
{ "_id" : 1, "sender" : "Jenna"}
{ "_id" : 2, "sender" : "Jenna"}
{ "_id" : 3, "sender" : "George"}
{ "_id" : 4, "sender" : "George"}
{ "_id" : 5, "sender" : "Amy"}
MR功能
map = function() {
emit(this.sender, 1);
}
reduce = function (key, values) {
return 1;
}
输出:
"results" : [
{
"_id" : "Amy",
"value" : 1
},
{
"_id" : "George",
"value" : 1
},
{
"_id" : "Jenna",
"value" : 1
}
]
是什么让一个项目一个项目上面? – 2012-08-01 18:09:32
它是每个人的不同数量。我很抱歉,我没有提到这一点。 – user1429322 2012-08-01 18:30:10
如果不是mapreduce,那么去'group by'..我认为你的不是一个分片系统 – 2012-08-01 18:39:30