2014-01-16 35 views
1
文件

我的js文件是具有以下代碼:如何JS運行從Mongoshell

use testdb; 
var json = ["{\"Asset \":\"MiSeq\",\"Serial No\":\"4398\"}","{\"Asset \":\"MiSeq\",\"Serial No\":\"4398\"}"]; 

    setInterval(function(){ var values = json, 
     valueToUse = values[Math.floor(Math.random() * values.length)]; 
    db.testData.insert(valueToUse); 
    }, 1000); 

正如我嘗試使用我的蒙戈外殼通過加載這個js文件:

load(d://insertJson.js); 

我明白,這將無限循環,但我沒有看到任何插入在mongodb中的數據

我的方法是否錯誤?

回答

0
如果您在MongoDB中執行的setInterval shell得到

ReferenceError: setInterval is not defined

看來你不能在MongoDB的shell中使用它。

也許你可以使用一個while循環,但我不知道如何可以睡1000毫秒。在mongodb shell中有睡眠功能,但我認爲這不是你想要的:http://docs.mongodb.org/manual/reference/command/sleep/

+0

['window.setInterval()'](https://developer.mozilla.org/en-US/docs/Web/API /Window.setInterval)是由Web瀏覽器/ UI中存在的標準JavaScript'window'對象提供的定時器方法。 'mongo' shell不包含'window'對象;最接近的相當於一個帶有'sleep()'的while循環,正如所建議的那樣。 – Stennie

+0

'睡眠'數據庫命令強制數據庫阻止所有操作。這不是你想要的。 mongo shell中的'sleep()'javascript函數沒問題(https://github.com/mongodb/mongo/blob/v3.0/src/mongo/scripting/utils.cpp#L55-L64) –