我正在运行以下命令,我希望在out.log文件中看到输出,但它不打印任何内容。
/tmp/mongodb/bin/mongo mydatabase_name /tmp/mongodb/scripts/test.js >> out.log
这些是我的test.js
中的内容db.system.js.save (
{ _id:"run_job",
value: function() {
console.log("in function");
print("in function>>");
db.myUser.find().forEach(
function(eachuser){
console.log("eachuser id" + eachuser._id);
var lower_id = eachuser._id.toLowerCase();
console.log("Lowercase id" + lower_id);
});
}
}
);
它给出错误:调用失败:JS错误:未定义控制台。所以它删除了console.log。但它仍然无法使用打印功能进行打印。 谢谢。
答案 0 :(得分:1)
MongoDB shell中没有定义console
个对象。
您需要使用全球可用的print
和printjson
功能。
print("Hi! I'm in your log!");
打印的任何内容都将发送到当前日志文件。如果您的mongo配置中没有定义日志文件,那么它将被发送到screen / stdout,这样您就可以根据需要将结果通过管道传输到文件中(或者您可能只想使用由MongoDB的)。
如果您使用的代码为console.log
,则可以构建一个通过print
和printjson
重定向输出的polyfill。