1

私の .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() などの実際のクエリに置き換えた場合にのみ機能します。

4

1 に答える 1

2

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 は悪であり、最後の手段としてのみ使用する必要があるとよく言われます。

于 2016-06-16T09:17:38.150 に答える