MongoDB不支持批量插入

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: mongodb的结构与关系型数据库不同,它类似树状结构,可以很方便对每个分支进行操作,但它没有像mysql那样insert(value、value、value...)那样的语法,也不支持transaction所以mongodb不能批量插入数据,如果你要批量插入数据,可以在mongodb里写一个循环,它支持for等语法。

mongodb的结构与关系型数据库不同,它类似树状结构,可以很方便对每个分支进行操作,但它没有像mysql那样insert(value、value、value...)那样的语法,也不支持transaction
所以mongodb不能批量插入数据,如果你要批量插入数据,可以在mongodb里写一个循环,它支持for等语法。


因为MongoDB的底层就不支持这种操作。
从MongoDB的oplog模式中可以看出,MongoDB的每次op都是独立执行的最小单元,因此,不会存在多个op组合成一个执行的情况。因此在各种API中都不会存在这种批量插入的操作。

某网友提到他的理解,觉得很有道理:
这里还是涉及到大家经常用到的传统关系型数据库和NoSQL的本质区别问题,NoSQL的每次操作都非常轻量级,小型化,除了数据的写入外基本没有多余的操作。
类比:MongoDB就是放东西(数据)时把东西扔入相应的柜子(数据库)即可,而MySQL则要保持与送东西人的沟通(双向连接保持),东西的折叠整理分格存储(有模式)。
MySQL的批量插入就是减少了沟通以及分格等过程,而MongoDB本身就不存在这些过程,因此MongoDB就不存在批量插入这个概念了。

 

我以前测验用php进行批量向mongodb插入数据的代码:

 

$conn = new Mongo();


$db = $conn->selectDB("test");//这里设置数据库名称

$collection = $db->mytable;//选择表
/*
+----------------------------------------------------------------
批量插入数据,一次插入10万条数据。把数字改掉就可以多插入些
+----------------------------------------------------------------
*/
$users = array();
for ($i = 0; $i<100000; $i++) {
  $users[] = array('username' => 'user'.$i, 'i' => $i);
}

$ok = $collection->batchInsert($users);

 

 

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
NoSQL 关系型数据库 MySQL
DLA支持分析MongoDB/RDS只读实例
在对Mysql,MongoDB等数据库系统进行分析时,经常面临的一个问题是在进行分析查询时如何避免对实时业务产生影响,也就是OLAP负载和OLTP负载隔离的问题。针对这个问题,阿里云数据湖团队一直在努力优化,提供满足不同场景的解决方案。
719 0
DLA支持分析MongoDB/RDS只读实例
|
运维 NoSQL atlas
MongoDB Server 3.4版本将于2020年1月31日停止支持
MongoDB日前宣布, MongoDB Server 3.4版本生命周期将于2020年1月31日结束,公司也将同步停止对3.4版本的支持工作。我们强烈建议大家将MongoDB升级到最新稳定版本(当前为4.2版本),本文提供了在线升级过程的文档链接。
|
Dubbo NoSQL 应用服务中间件
春节好消息 | Dubbo拥抱Apache,MongoDB支持事物……
大年初五好,一个年过了好些天了,软件方面都有哪些重大更新呢?我们一起来看看吧。 1.Dubbo通过投票正式进入Apache基金会孵化器 2018年2月9日,Apache基金会发起了是否允许阿里巴巴的分布式框架Dubbo项目进入Apache 孵化器的投票讨论。
1224 0
|
存储 NoSQL 分布式数据库
遇见未来 | MongoDB增强事务支持,向NewSQL的方向迈进
MongoDB于2009年发布,其最初的设计目标是性能和易于存取数据。作为文档数据库,允许数据以嵌套的状态保存,并且能够以任意方式查询嵌套的数据。这使得它能够灵活地处理各类大小任务,正因为多功能、强大、灵活,因而广泛被使用。
4980 0
|
存储 Web App开发 NoSQL
云数据库MongoDB全面支持3.4版本,支持多存储引擎
云数据库MongoDB全面支持MongoDB3.4版本,全面支持WiredTiger,RocksDB,TerarkDB三种存储引擎,本文讲述了云数据库MongoDB全面升级后,功能性能上有了哪些重大突破以及典型应用场景介绍。
1566 0