1. 程式人生 > >MongoDB使用sh或者js文件

MongoDB使用sh或者js文件

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文件