javascript - MongoDB 脚本执行存储在变量中的查询

标签 javascript mongodb mongodb-shell

我的 .js 脚本从包含 mongodb 查询的文件中读取并将其填充到数组中。然后我读取该数组并执行查询,但它们没有被执行。下面是我的代码。

1. //After successfuly connecting to mongodb
2. //read a file containing queries
3. var queryFile = cat("queries.txt");
4. var queries = queryFile.split("\r\n");
5. var length = queries.length;
6. for(var i = 0; i < length; i++){
7.        var start = new Date().getTime()
8.        queries[i]
9.        var end = new Date().getTime();
10.        var timeElapsed = (end - start)/1000;
11.        print ( "Time taken to run query : "+timeElapsed+" secs" )
12. }

只有当我将第 12 行替换为实际查询时,它才有效。 db.coll.count()

最佳答案

queries[i] 只是一个字符串。这是一个字符串化的指令。我的猜测是使用 eval(queries[i]) 对其进行评估。

for(var i = 0; i < length; i++){
        var start = new Date().getTime()
        eval(queries[i]);
        var end = new Date().getTime();
        var timeElapsed = (end - start)/1000;
        print ( "Time taken to run query : "+timeElapsed+" secs" )
 }

然而,人们常说eval is evil并且只能在最后手段下使用。

关于javascript - MongoDB 脚本执行存储在变量中的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37835180/

相关文章:

javascript - 如何在 mongodb shell 中使用闭包?

javascript - Angular Directive(指令)向所有字段显示消息,而不是向特定字段显示消息?

MongoDB:按标签获取文档

javascript - 使用 Jasmine 进行异步测试

java - 在mongodb子文档中查找

ruby-on-rails-3 - 如何删除 mongodb 数据库?

javascript - 如何在 MongoDB shell 中将文档数组更改为值数组?

mongodb - 如何在提示输入密码时加载mongodb脚本文件?

javascript - 两次移动元素后元素顺序困惑

javascript - 通过ajax点击按钮调用php脚本