MongoDB插入百万数据

1、装好数据库

查看库:show dbs;

创建数据库:
在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。
新库需要插入一条内容,否则不保存:db.test.insert({"name":"马冬梅"})

MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中
删除创建的数据库,首先使用use切换到要删除的数据库,执行删除命令:

> use test
switched to db test

> db.dropdatabase();
{ "dropped" : "test", "ok" : 1 }

集合删除语法格式:db.collection.drop()

> use test
switched to db test

> db.createCollection("test")       # 先创建集合,类似数据库中的表
> show tables                       # show collections  命令会更加准确点
test
> db.test.drop()
true
> show tables
>

2、准备好插入的集合数据,这里使用JavaStript准备数据

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        let str = '';
        for (let i = 1; i <= 99999; i++) {
            str += JSON.stringify({
                name: 'mongodb' + i,
                age: i
            });
        }
        document.body.innerHTML = str;
    </Script>
</body>

</html>

使用浏览器打开上面HTML文件,复制内容生成JSON文件


3、直接使用命令插入集合

/路径/mogodb/bin/mongoimport --db test --collection test --file /tmp/DC.json

上述命令中,首先找到mongoimport导入集合数据文件路径,--db 后跟所选数据库,--collection 后跟要插入到哪个集合中,--file 后跟已生成需要导入集合的数据文件,可在集合后跟--drop 参数,代表插入前清库


4、或使用定时任务脚本按时间插入集合

#!/bin/bash

n=0
while (($n < 30)); do
    /路径/mogodb/bin/mongoimport --db test --collection test --file /tmp/DC.json
    n=$((n + 1))
    sleep 40
done

exit 0

5、若生成JSON文件大小为35-40M,导入30次数据库大小约为1G,脚本睡眠时间需要不低于30秒

posted @ 2022-02-22 22:39  Hnoss  阅读(802)  评论(0编辑  收藏  举报