2017-05-28 84 views
0

我正在構建一個MongoDB數據庫,並在localhost上這樣做。我一直在使用JS腳本。我通過var conn = new Mongo('localhost:27017')開始我的腳本測試了本地主機上的數據庫,並且一切正常。但是,當我試圖爲MLAB例如,通過使用運行該腳本:Mongo腳本總是連接到本地主機

var conn = new Mongo('mongodb://<dbuser>:<dbpassword>@ds115671.mlab.com:15671/finance_tracker') 

(顯然更換用戶名和密碼),我得到的唯一的輸出是:

MongoDB shell version v3.4.2 
connecting to: mongodb://127.0.0.1:27017 
MongoDB server version: 3.4.2 

然後我試着只是使用主機和端口,如建議在manual,然後使用db.auth(),像這樣:

conn = new Mongo('ds115671.mlab.com:15671'); 
db = conn.getDB("finance_tracker"); 
db.auth(username, password); 

我得到同樣的消息,說明我之前CON連接到當地的mongo實例。

如何編寫我的腳本,以便它在聯機Mongo實例上執行?

編輯: 下面是腳本的例子:

的script.js

conn = new Mongo('ds115671.mlab.com:15671'); 
db = conn.getDB("finance_tracker"); 
db.auth('username', 'password'); 

db.users.insert({ 
    firstName: 'eddard', 
    surname: 'stark', 
    email: '[email protected]', 
    group: ObjectId() 
}); 

var eddardstark = db.users.findOne({email:'[email protected]'}); 
var groupOneOid = eddardstark.group; 

db.users.createIndex({email:1}, {unique: true}); 

db.users.insertMany([{ 
    userFirstName: 'catelyn', 
    surname: 'tully', 
    email: '[email protected]', 
    group: groupOneOid 
}, { 
    userFirstName: 'robb', 
    surname: 'stark', 
    email: '[email protected]', 
    group: groupOneOid 
}]) 

這然後使用mongo script.js

+0

嗨@KajhiitKnight你是如何執行/啓動你的腳本?你能指定你使用的命令嗎? –

+0

我正在使用'mongo path/to/script.js' – JavaTheNutt

回答

3

你看到的是輸出在控制檯,因爲你與

mongo script.js. 

它連接的本地主機調用腳本默認。你沒有看到,因爲你的連接語句在JS文件中。

如果你想在mongo shell中運行一個JS腳本到mlab。做這樣的事情。

mongo ds115671.mlab.com:15671/finance_tracker -u <user> -p <password> script.js 

這將連接到您的mlab mongodb,然後將運行您的腳本。 然後在你的script.js中你可以有這樣的聲明。

db['users'].insert({'test': 'test'}); 

上面的示例會將文檔插入到用戶集合中。不知道你想在你的腳本中運行什麼,所以我只寫了一個我自己的例子。我希望這有幫助。

+0

哦,我在寫一個例子時發佈了更新。 –

0

你先在命令行中運行通過shell連接到mLab MongoDB,或者您是否正在從計算機執行腳本?如果您正在對mLab進行shelling,那麼您已經連接並且您的腳本可以在不連接的情況下開始查詢。如果您正在運行您的計算機,然後工作示例的腳本如下所示:

var MongoClient = require('mongodb').MongoClient; 
MongoClient.connect('mongodb://<dbuser>:<dbpassword>@ds115671.mlab.com:15671/finance_tracker', function(err, db) { 
    console.log("Connected correctly to server"); 
    db.close(); 
});