在MongoDB中可以使用MapReduce进行一些复杂的聚合查询 Map函数和Reduce函数可以使用JavaScript来实现 可以通过db.runCommand或ma
在MongoDB中可以使用MapReduce进行一些复杂的聚合查询
Map函数和Reduce函数可以使用JavaScript来实现
可以通过db.runCommand或mapReduce命令来执行一个MapReduce的操作:
db.runCommand(
[, verbose : true]
}
);
#或者使用一个包装后的Helper命令
db.collection.mapReduce(mapfunction,reducefunction[,options]);
如果没有定义out,则它执行后默认生成一个临时的collection,当client连接断开后,该collection会自动被清除
一个简单的列子,有一个user_addr的collection,结果如下:
db.user_addr.find({'Uid':'test@sohu.com'})
{ "_id" : ObjectId("4bbde0bf600ac3c3cc7245e3"), "Uid" : "yangsong@sohu.com", "Al" : [
{
"Nn" : "test-1",
"Em" : "test-1@sohu.com",
},
{
"Nn" : "test-2",
"Em" : "test-2@sohu.com",
},
{
"Nn" : "test-3",
"Em" : "test-3@sohu.com",
}
] }
存储了一个用户(Uid)对应的联系人信息(Al),现在要查询每个Em联系人对应的数目,则建立如下的MapReduce
for (index in this.Al) {
emit(this.Al[index].Em, 1);
}
}
for (index in vals) {
sum += vals[index];
,
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn