MongoDB中MapReduce的应用

来源:这里教程网 时间:2026-02-27 12:35:42 作者:

在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];
  • 相关推荐