MongoDB不支持批量插入,变相的别外一种方法实现批量插入
2015-08-04 10:14
471 查看
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万条数据。把数字改掉就可以多插入些 +---------------------------------------------------------------- */ <span style="color:#ff0000;">$users = array(); for ($i = 0; $i<100000; $i++) { $users[] = array('username' => 'user'.$i, 'i' => $i); } $ok = $collection->batchInsert($users);</span>
相关文章推荐
- 8天学通MongoDB——第三天 细说高级操作
- 8天学通MongoDB——第二天 细说增删查改
- MongoDB——分片
- MongoDB——主从复制&副本集
- MongoDB 在windows shell环境下的基本操作和命令的使用示例(五)
- MongoDB——简介与安装
- mongodb分片原理
- mongodb个人研究
- Mongodb-使用C#Drivers实现增删改查
- MongoDB Windows环境安装及配置
- MongoDB学习(8)驱动实践
- MongoDB学习(6)分片技术
- MongoDB学习(7)运维技术
- MongoDB学习(5)主从复制
- MongoDB学习(4)索引
- MongoDB学习(3)高级操作
- MongoDB学习(2)增删改查
- Mongodb-基本命令
- Mongodb-安装篇(2)
- Why does Quora use MySQL as the data store instead of NoSQLs such as Cassandra, MongoDB, or CouchDB?