2011-12-21 82 views
43

我正在学习有关mongodb的map-reduce功能。我的第一个测试不能按照我的预期工作,我想知道它是如何工作的。是否可以在javascript执行中写入mongodb控制台?

是否有任何方式从javascript函数写入到mongodb控制台所以我可以检查它?我试过console.log("..."),但它不起作用。

稍后我会询问我的测试,如果没有办法做到这一点。

回答

73

您必须使用'print("anything ..")'或printjson来显示对象。

[email protected]:~$ mongo 
MongoDB shell version: 2.0.2 
connecting to: test 
> object = { "name" : "any name .." , "key" : "value" } 
{ "name" : "any name ..", "key" : "value" } 
> printjson (object) 
{ "name" : "any name ..", "key" : "value" } 
> print ("hello world") 
hello world 
> 
+0

我在Mac上,这工作。如果它不起作用,那是因为你在做其他事情。仔细检查您的文件路径,权限等 – CommaToast 2014-06-03 19:28:45

6

我从地图猜/减少需要插入您的功能将消息调试成某些日志集合:

var map = function() { 
    //some staff here 
}; 

var reduce = function(key, values) { 
    db.mr_logs.insert({message: "Message from reduce function"}); 
    //some staff here 
}; 


res = db.items.mapReduce(map, reduce,{ query : {}, out : 'example1' }) 

之后,您可以在mr_logs集合中找到您的调试结果。

db.mr_logs.find(); 

至于print似乎不打印输出,当你在地图或减少功能来安慰。