MongoDB使用sh或者js文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB使用sh或者js文件相关的知识,希望对你有一定的参考价值。

有时候我们需要向数据库中手动插入一些数据,但是如果数据格式本身比较复杂,并且需要插入多条数据的时候,直接子啊mongodb的shell上写js代码来像执行命令一样,虽然简单粗暴,但是对于比较复杂数据的情况是很不方便的,并且在shell上写js代码不方便修改数据等。

所以如果能把想要执行的js代码写成一个脚本,需要插入、修改数据的时候,只需要执行这个脚本就可以了,并且修改js代码也非常的方便


例如:在testdb数据库下的test集合中插入一条数据, 

在任意路径下新建一个insert.js的文件(文件名自己定义),内容如下:

var url="mongodb://localhost:27019/testdb";
var db = connect(url);
db.test.insert({"name":"user5"});


执行:

# mongo insert.js 
MongoDB shell version v3.4.14
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.14
connecting to: mongodb://localhost:27019/testdb
MongoDB server version: 3.4.14


查看结果:

test-set:PRIMARY> db.test.find()
{ "_id" : ObjectId("5ad844efa46a748c5a90fe41"), "name" : "user1" }
{ "_id" : ObjectId("5ad8608a8de9df222390480e"), "name" : "user2" }
{ "_id" : ObjectId("5ad860998de9df222390480f"), "name" : "user3" }
{ "_id" : ObjectId("5ad860ba349d15f7f4a9ce9b"), "name" : "user4" }
{ "_id" : ObjectId("5ad860be8c80e45b6ab87b90"), "name" : "user4" }
{ "_id" : ObjectId("5ad860c0049eccbc93be69b0"), "name" : "user4" }
{ "_id" : ObjectId("5ad8611c7d1d4c1131c1a424"), "name" : "user4" }
{ "_id" : ObjectId("5ad8625a16805ab661da90ea"), "name" : "user5" }

数据插入成功。


还可以写成shell脚本,

use testdb;
db.test.insert({"name":"user4"});

执行:

# mongo --port 27019 < test.sh       
MongoDB shell version v3.4.14
connecting to: mongodb://127.0.0.1:27019/
MongoDB server version: 3.4.14
switched to db testdb
WriteResult({ "nInserted" : 1 })
bye


注意:执行shell脚本和js脚本不一样的,js文件中定义了mongdb的url地址。shell脚本是将文件内容作为输入,输入到命令行。js脚本中不能使用use db_name这样的语句。



以上是关于MongoDB使用sh或者js文件的主要内容,如果未能解决你的问题,请参考以下文章

AJAX相关JS代码片段和部分浏览器模型

sh Bash的代码片段

Mongodb 以及 node.js中使用mongoose操作数据库

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

坑爹的ubuntu /bin/sh