[TOC]

对 Map Function 进行故障排除

对 Map Function 进行故障排除

map function 是一个 JavaScript function,它将 value 与 key 关联或“maps”,并在map-reduce操作期间发出 key 和 value 对。

要验证map function 发出的keyvalue对,请编写自己的emit function。

考虑一个包含以下原型文档的集合orders

{
     _id: ObjectId("50a8240b927d5d8b5891743c"),
     cust_id: "abc123",
     ord_date: new Date("Oct 04, 2012"),
     status: 'A',
     price: 250,
     items: [ { sku: "mmm", qty: 5, price: 2.5 },
              { sku: "nnn", qty: 5, price: 2.5 } ]
}
  • 为每个文档定义_ma 功能
var map = function() {
    emit(this.cust_id, this.price);
};
  • 定义emit function 以打印 key 和 value:
  var emit = function(key, value) {
      print("emit");
      print("key: " + key + "  value: " + tojson(value));
  }
  • 使用orders集合中的单个文档调用map function:
  var myDoc = db.orders.findOne( { _id: ObjectId("50a8240b927d5d8b5891743c") } );
  map.apply(myDoc);
  • 验证 key 和 value 对是否符合预期。
  emit
  key: abc123 value:250
  • 使用orders集合中的多个文档调用map function:
  var myCursor = db.orders.find( { cust_id: "abc123" } );
  while (myCursor.hasNext()) {
      var doc = myCursor.next();
      print ("document _id= " + tojson(doc._id));
      map.apply(doc);
      print();
  }
  • 验证 key 和 value 对是否符合预期。

也可以看看

mapfunction 必须满足各种要求。有关map` function 的所有要求的列表,请参阅MapReducemongo shell 辅助方法db.collection.mapReduce()

译者:李冠飞

校对:

参见

原文 - Troubleshoot the Map Function

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2020-12-18 11:34:57

results matching ""

No results matching ""