javascript - 我如何加载其他js脚本并使用mongodb运行它

标签 javascript mongodb coffeescript

我需要编写一堆查询。

每个查询都共享一些通用数据结构函数

我如何加载common.js并使用app.js中的函数常量( actullay我是用coffee写的,然后转成js)

我收到错误 mongo localhost:27017/test app.js

E QUERY ReferenceError: leading_zero is not defined

common.js

USERS = [
  '477  ',
  '4770 '
]

  leading_zero = function(num, size) {
    var s;
    if (size == null) {
      size = 2;
    }
    s = num + '';
    while (s.length < size) {
      s = '0' + s;
    }
    return s;
  };

app.js

load("./common.js")
print(leading_zero(3))
print(USERS)

最佳答案

函数leading_zero需要位于您的数据库上。引用http://docs.mongodb.org/manual/tutorial/store-javascript-function-on-server/

首先在 shell 上运行:

db.system.js.save(
   {
     _id: "leading_zero",
     value : function(num, size) {
        var s;
        if (size == null) {
          size = 2;
        }
        s = num + '';
        while (s.length < size) {
          s = '0' + s;
        }
        return s;
      }
   }
)

这会将函数作为系统函数保存在数据库上。

运行db.loadServerScripts();在 shell 上一次加载所有脚本。

然后您可以在查询中的任何位置调用它。

print(leading_zero(3)) // directly on shell

db.myCollection.find( { $where: "this.credits == myfunc(this.xValue)" } ); // on query

关于javascript - 我如何加载其他js脚本并使用mongodb运行它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30881810/

相关文章:

javascript - 按需更新多个 Highcharts 实例的最佳性能

javascript - Redux reducer 正在被我的 React 组件中的 setState 或 .map() 覆盖

javascript - 从 dom 中删除项目并稍后再次使用

mongodb - 我需要在 mongodb 中找到电影名称和平均评分?

php - MongoDB 和 PHP 库游标超时

javascript - 在 JavaScript 中压缩对象层次结构

javascript - ASP.NET MVC 5 从 Javascript 错误调用 Controller 方法

php - 带有 JSON 和 PHP 的 AJAX 不返回任何数据......我认为

python - 如何在 Python 中连接来自两个 MongoDB 集合的数据?

node.js - 在 VSCode 中调试 CoffeeScript 转到 .js 文件