在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]; ,
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1936898.html