对 Map Function 进行故障排除
要验证
map
function 发出的key
和value
对,请编写自己的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 对是否符合预期。emitkey: 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 的所有要求的列表,请参阅MapReduce或mongo shell 辅助方法db.collection.mapReduce()。
译者:李冠飞
校对:
最近更新 1yr ago