您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页mongo执行js脚本

mongo执行js脚本

来源:二三四教育网

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

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

那么如何运行一个js脚本?
方法一(最简单的):
  1. 如果我们需要想某一数据库中的某一个集合中插入数据
    首先在任意目录下, 新建一个insert.js文件,在其中加入内容:
 #获取数据库对外提供的可访问的端口号27017,以及要连接到的指定数据库nodebb  
var url = "mongodb://localhost:27017/nodebb"; 
 #链接到上述指定的数据库  
var db = connect(url);
#插入数据到数据库nodebb中的某一个集合的嵌套中的语句
db.objects.update({"pid": 102}, { $push: { 
           "comments": {      
                           "pid": 103,     
                           "comid": 1,      
                           "uid": 1,
                           "comContents": "我不管,我最美,啊哈哈哈哈"  
                       }
             }
});
  1. 然后切换到insert.js文件所在的目录下
     执行:$ mongo insert.js 即可
方法二:
其实就只执行:`$ ./mongo 127.0.0.1:27017/test   test.js`
说明:
(1)./mongo :              # mongo客户端
(2)127.0.0.1:27017/test :    
   * 127.0.0.1:  mongo服务所在机的ip地址.
   * 27017:  叫port, mongo服务对外提供的访问端口(mongodb一般为27017)
   * test : 需要连接的数据库名字;

(3)test.js :  待运行的脚本

下面来说说怎么js脚本怎么写,又怎么执行:

首先新建一个test.js的文件:

/test.js
db.objects.update({"pid": 103}, { $push: {   
         "comments": {      
                            "pid": 103,     
                            "comid": 1,      
                            "uid": 1,      
                            "comContents": "我不管,我最美,啊哈哈哈哈"   
                      }
                 }
});

找到linux中安装mongod源所在的目录:
执行命令:$ which mongod

可以在任意目录执行该命令

切换到bin目录下:$ cd /usr/bin 或者直接:$ /usr/bin 然后 回车

进入到bin目录

然后在刚刚新建的test.js 所在的目录下执行:$ pwd

查看js脚本的路径
然后将这个路劲复制一下,在最后加上/test.js ,如:

/home/qmm/internship-TW/secondNodeBB/nodebb/isnertData-mongo/test.js

然后回到刚才的bin目录下执行:

一定要保证mongodb数据库服务器是开启状态的,没有开启数据局服务器是不能执行成功的
$./mongo 127.0.0.1:27017/nodebb /home/qmm/internship-TW/secondNodeBB/nodebb/isnertData-mongo/db.js

mongo执行js脚本

来我们去看看我们刚刚的操作都做了什么,去数据库中去查一下js脚本执行后,数据库中有没有发生变化呢(js脚本执行了3次):

执行之前的集合:

执行之前数据库的集合长这样

执行脚本之后:


执行了3次js脚本,果然插入了3条comments

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务