MongoDB Shell脚本和JavaScript之间的差异

Differences between MongoDB Shell Scripting and JavaScript?

本文关键字:之间 JavaScript Shell 脚本 MongoDB      更新时间:2023-09-26

由于这是一项家庭作业,我不想发布我的代码,因为它本质上提供了一个解决方案。我可以发布一些通用的片段。我首先要说的是,我是javascript和Mongo的新手,基本上在昨晚的几个小时内就学会了。

基本上,我有一些代码,当我粘贴到shell中时,它可以完美地工作,但当我将其保存到数据库中并尝试执行时,它就不起作用了。下面是一个基本的例子。

db.system.js.save(
{
   _id: "istrue",
   value: function (x){ 
   if(x == true)
      print("true");
   else
      print("false");
   }
})

因此,如果我复制并粘贴此代码,并首先设置var x = truevar x = false,则它可以工作,但如果我这样做:

db.eval("istrue(true);");

然后它就不起作用了。

有什么想法吗?

我找不到任何关于这种行为的文档,但经过一点测试,您的代码运行得很好,但存储函数不能使用print,或者print的输出到stdout以外的其他地方。如果您return字符串而不是打印它们,您将看到您所期望的结果。

我怀疑输出将进入MongoDB日志,但我不确定我的安装将它们放在哪里。