MongoDB脚本执行存储在变量

时间:2016-06-15 12:14:51

标签: 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()

1 个答案:

答案 0 :(得分:1)

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并且必须在最后使用。