返回介绍

批量插入数据

发布于 2024-12-09 12:55:34 字数 1866 浏览 0 评论 0 收藏 0

批量数据插入是以数组的方式进行的。

db.test.insert([
    {"name": "lisi"},
    {"name": "wangwu"}
])

在老版本 MongoDB(3.2 以前的版本基本都需要)是需要在 Insert 前加一个 batch 单词的,如下代码:

db.test.batchInsert([
    {"name": "lisi"},
    {"name": "wangwu"}
])

循环插入

新建 js 文件 demo2.js ,具体内容如下:

/**
 * 循环插入多条数据
 */
const startTime = (new Date()).getTime(); // 获取开始时间
var db = connect('user'); // 连接数据库
// 循环插入数据
for(let i = 0; i < 1000; i++) {
    db.test.insert({x: i});
}
const runTime = (new Date()).getTime() - startTime; // 计算时间差
print('demo run: ' + runTime + 'ms');
➜  mongo demo2.js
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
connecting to: mongodb://127.0.0.1:27017/user
MongoDB server version: 3.6.3
demo run:288ms

循环插入需要 200 多毫秒。

批量插入

新建 js 文件 demo3.js ,具体内容如下:

/**
 * 批量插入数据
 */
const startTime = (new Date()).getTime(); // 获取开始时间
var db = connect('user'); // 连接数据库
// 批量插入数据
const temArr = [];
for(let i = 0; i < 1000; i++) {
    temArr.push({x: i});
}
db.test.insert(temArr); // 批量一次性插入
const runTime = (new Date()).getTime() - startTime; // 计算时间差
print('demo run: ' + runTime + 'ms');
➜  mongo demo3.js
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
connecting to: mongodb://127.0.0.1:27017/user
MongoDB server version: 3.6.3
demo run: 12ms

批量插入仅仅需要十几毫秒。

需要注意:一次插入不要超过 48M,像 .zip 和大图片等资源尽量采用静态存储,MongoDB 存储静态路径就好。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文