mongodb shell 運行js腳本的四種方式

mongodb shell 運行js腳本的四種方式

2017年06月07日 12:35:18 wershest 閱讀數 17444mongodb

 版權聲明:本文爲博主原創文章,未經博主容許不得轉載。 https://blog.csdn.net/wershest/article/details/72898393shell

官方文檔: https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/數據庫

 

 

1. 交互式 mongo shelljson

 

大部分的 mongodb 教程,在第一章都會講解這種方式。centos

mongo 127.0.0.1:27017spa

use test.net

db.users.findOne()命令行

 

 

 

2. mongo --eval 運行一段腳本code

 

不進入交互模式,直接在 OS 的命令行下運行一段mongodb腳本。blog

 

mongo 127.0.0.1:27017/test --eval "printjson(db.users.findOne())"

 

 

 

3. 在OS命令行下,運行一個js文件

 

mongo 127.0.0.1:27017/test userfindone.js

 

userfindone.js 的內容:

printjson(db.users.findOne());

 

 

 

4. 在mongo shell 交互模式下,運行一個js文件

 

mongo test

load("/root/mongojs/userfindone.js")

 

load() 參數中的文件路徑,既能夠是相對路徑,也能夠是絕對路徑。

在mongo shell下查看當前工做路徑的方法: pwd( )

 

當前工做路徑就是咱們啓動mongo shell時,當前用戶所處的路徑。

例如:

[root@cgl-centos-dev mongojs]# pwd

/root/mongojs

[root@cgl-centos-dev mongojs]# mongo

MongoDB shell version: 2.6.12

connecting 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命令也不例外。

例如:

 

//utils.js
function sum(a,b) {
    return a + b;
}

 

//dosomething.js

load("utils.js");

var a = 17;
var b = 48;
sum(a+b);
相關文章
相關標籤/搜索