MongoDB编写并执行js脚本


使用mongodb项目时经常需要在数据库中插入假数据,如果每次都手动插入就会很麻烦,所以我们可以选择编写脚本来执行。mongodb是可以直接执行js脚本的,使用方法也比较简单。

编写脚本

  1. 以插入数据为例,我们首先要做的就是创建js文件(test.js),并在该文件中连接本地数据库,写法如下:
var url = "mongodb://localhost:27017/nodebb";
var db = connect(url);

第一行代码中的nodebb是想要连接的本地数据库名,执行以上两行代码,db就代表链接到的nodebb数据库

  1. 接下来就和我们平时在数据库中写操作是一样的,例如插入操作:
   db.objects.update({"pid": 32}, {
    $push: {
        "comments": {
            "com_id": 1,
            "com_content": "我是32号post的第一条回复"
        }
    }
});

执行脚本

打开终端,到test.js所在的目录下,执行

mongo test.js

完成,是不是so easy~~

上述脚本做了什么事情

未执行脚本前,在命令行nodebb数据库下执行

db.objects.find({"pid":32}).pretty()

可以看到:

   {
    "_id" : ObjectId("58082f3ac698649ba0d3acce"),
    "_key" : "post:32",
    "pid" : 32,
    "uid" : 1,
    "tid" : 14,
    "content" : "朝辞白帝彩云间,千里江陵一日还",
    "timestamp" : 1476931386071,
    "deleted" : 0
}

现在我们要向"pid" : 32的数据中插入一个叫comments的数组,执行上述脚本,再次执行

db.objects.find({"pid":32}).pretty()

可以看到数据发生了变化,如下:

  {
    "_id" : ObjectId("58082f3ac698649ba0d3acce"),
    "_key" : "post:32",
    "pid" : 32,
    "uid" : 1,
    "tid" : 14,
    "content" : "朝辞白帝彩云间,千里江陵一日还",
    "timestamp" : 1476931386071,
    "deleted" : 0,
    "comments" : [
        {
            "com_id" : 1,
            "com_content" : "我是32号post的一条回复"
        }
    ]
}

你可能感兴趣的:(MongoDB编写并执行js脚本)