mongodb JavaScript控制台中的数组大容量插入
我正在尝试从阵列的MongoDB控制台向集合进行大容量插入 我想做类似的事情 obj1={u id:ObjectId(),blabla:1} obj2={u id:ObjectId(),blabla:2} objs=[obj1,obj2] db.test.insert(objs) db.test.find() >{u id:ObjectId(“xxxx”),“blabla”:1} >{u id:ObjectId(“xxxx”),“blabla”:2} 但是,它不是在集合中插入两个对象,而是用两个对象存储一个列表 db.test.find() >{u id:ObjectId(“xxx”),“0”:{u id:ObjectId(“xxxx”),“blabla”:1},“1”:{u id:ObjectId(“xxxx”),“blablabla”:2}mongodb JavaScript控制台中的数组大容量插入,javascript,mongodb,Javascript,Mongodb,我正在尝试从阵列的MongoDB控制台向集合进行大容量插入 我想做类似的事情 obj1={u id:ObjectId(),blabla:1} obj2={u id:ObjectId(),blabla:2} objs=[obj1,obj2] db.test.insert(objs) db.test.find() >{u id:ObjectId(“xxxx”),“blabla”:1} >{u id:ObjectId(“xxxx”),“blabla”:2} 但是,它不是在集合中插入两个对象,而是用两个
该功能似乎出现在其他驱动程序(如)上,但我在mongodb控制台上找不到一种用JavaScript代码实现该功能的方法。简而言之:mongo控制台级别上没有这样的批量插入API。对此有一个现有的功能请求 不能通过交互式命令shell执行大容量插入。但是Mongo附带了一个命令行工具,它允许您将多个记录作为JSON(您的最佳选择)、CSV或二进制文件导入
> mongoimport -h <host> -d <database> -c <collection> -u <user> -p <password> --file <input file> --jsonArray
>mongoimport-h-d-c-u-p--file--jsonArray
jsonArray
标志允许您在使用json数组文件时插入多条记录。另一个重要注意事项是确保文件以新行字符结尾。否则,最后一行将不会被解析。将多个文档插入集合的功能已添加到Mongo命令shell版本2.1+。现在,您可以在集合中插入和排列文档
例如:
db.users.insert([{name:'Jon', email:'Jon_Doe@mail.com'},{name:'Jane', email:'Jane_Doe@mail.com'}])
有关更多信息,请查看以下jira关闭功能请求:
批量在2.6.6中提供
var bulk=db.posts.initializeUnorderedBulkOp() ;
bulk.insert(obj1) ; bulk.insert(obj2);...
bulk.execute() ;
这个答案不再有效,正如您在IDAN()的回复中所看到的。
var bulk=db.posts.initializeUnorderedBulkOp() ;
bulk.insert(obj1) ; bulk.insert(obj2);...
bulk.execute() ;