mongodb shell 執行js指令碼的四種方式
阿新 • • 發佈:2018-12-24
1. 互動式 mongo shell大部分的 mongodb 教程,在第一章都會講解這種方式。mongo 127.0.0.1:27017use testdb.users.findOne()
2. mongo --eval 執行一段指令碼不進入互動模式,直接在 OS 的命令列下執行一段mongodb指令碼。mongo 127.0.0.1:27017/test --eval "printjson(db.users.findOne())"
3. 在OS命令列下,執行一個js檔案mongo 127.0.0.1:27017/test userfindone.jsuserfindone.js 的內容:printjson(db.users.findOne());
4. 在mongo shell 互動模式下,執行一個js檔案
注意:以上所有命令,如果連線的資料庫是 127.0.0.1:27017 ,則,主機和埠可以省略,例如:mongo test --eval "printjson(db.users.findOne())"
在js檔案中include其他js檔案
方法:使用上面第四種方法介紹的load命令。
原理:大部分的mongo shell命令都可以在js檔案中使用,load命令也不例外。
例如:
[javascript] view plain copy- //utils.js
- function sum(a,b) {
- return a + b;
- }
[javascript] view plain copy
- //dosomething.js
- load("utils.js");
- var a = 17;
- var b = 48;
- sum(a+b);
2. mongo --eval 執行一段指令碼不進入互動模式,直接在 OS 的命令列下執行一段mongodb指令碼。mongo 127.0.0.1:27017/test --eval "printjson(db.users.findOne())"
3. 在OS命令列下,執行一個js檔案mongo 127.0.0.1:27017/test userfindone.jsuserfindone.js 的內容:printjson(db.users.findOne());
4. 在mongo shell 互動模式下,執行一個js檔案mongo testload("/root/mongojs/userfindone.js")load() 引數中的檔案路徑,既可以是相對路徑,也可以是絕對路徑。在mongo shell下檢視當前工作路徑的方法: pwd( )當前工作路徑就是我們啟動mongo shell時,當前使用者所處的路徑。例如:[[email protected] mongojs]# pwd/root/mongojs[[email protected] mongojs]# mongoMongoDB shell version: 2.6.12connecting to: test> pwd()/root/mongojs>在js檔案中建立資料庫連線上面所有的例子,都是在執行mongo命令時,直接連線資料庫 (127.0.0.1:27017/test)。 我們也可以在js指令碼中建立資料庫連線,上面的第三種方法可以這麼寫:userfindone.js 檔案內容:conn = new Mongo("127.0.0.1:27017");db = conn.getDB("test");printjson(db.users.findOne());在命令列下執行:mongo --nodb userfindone.js
注意:以上所有命令,如果連線的資料庫是 127.0.0.1:27017 ,則,主機和埠可以省略,例如:mongo test --eval "printjson(db.users.findOne())"
在js檔案中include其他js檔案
方法:使用上面第四種方法介紹的load命令。
原理:大部分的mongo shell命令都可以在js檔案中使用,load命令也不例外。
例如:
[javascript] view plain copy- //utils.js
- function sum(a,b) {
- return a + b;
- }
[javascript] view plain copy
- //dosomething.js
- load("utils.js");
- var a = 17;
- var b = 48;
- sum(a+b);