使用mongodb项目时经常需要在数据库中插入假数据,如果每次都手动插入就会很麻烦,所以我们可以选择编写脚本来执行。mongodb是可以直接执行js脚本的,使用方法也比较简单。
编写脚本
- 以插入数据为例,我们首先要做的就是创建js文件(test.js),并在该文件中连接本地数据库,写法如下:
var url = "mongodb://localhost:27017/nodebb";
var db = connect(url);
第一行代码中的nodebb是想要连接的本地数据库名,执行以上两行代码,db就代表链接到的nodebb数据库
- 接下来就和我们平时在数据库中写操作是一样的,例如插入操作:
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的一条回复"
}
]
}