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);
相关文章
相关标签/搜索