MongoDB插入文档(3中方法)
前面我们已经介绍了如何在 MongoDB 中创建数据库和创建集合,接下来我们再来介绍一下如何在集合中插入文档。文档是 MongoDB 中数据的基本单位,由 BSON 格式(一种计算机数据交换格式,类似于 JSON)的键/值对组成。
【示例】使用 insert() 方法向集合中插入文档:
insert() 与 save() 方法
您可以使用 MongoDB 中的 insert() 或 save() 方法向集合中插入文档,语法如下:
db.collection_name.insert(document)
db.collection_name.save(document)
- save():如果 _id 主键存在则更新数据,如果不存在就插入数据。不过该方法在新版本的 MongoDB 中已废弃,您可以使用 insertOne() 或 replaceOne() 方法来代替;
- insert(): 若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,并提示主键重复,不保存当前数据。
【示例】使用 insert() 方法向集合中插入文档:
> db.user.insert([ ... { ... name:"张三", ... phone:"15012345678" ... },{ ... name:"李四", ... phone:"18687654321" ... },{ ... name:"王五", ... phone:"13100001111" ... } ... ]) BulkWriteResult({ "writeErrors" : [ ], "writeConcernErrors" : [ ], "nInserted" : 3, "nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ] })文档插入成功后您可以使用 find() 方法来查看集合中文档的内容,如下所示:
> db.user.find() { "_id" : ObjectId("6030d907d029695c0c340c43"), "name" : "张三", "phone" : "15012345678" } { "_id" : ObjectId("6030d907d029695c0c340c44"), "name" : "李四", "phone" : "18687654321" } { "_id" : ObjectId("6030d907d029695c0c340c45"), "name" : "王五", "phone" : "13100001111" }文档中 _id 为主键 ID,它在每个文档中都是唯一的,在插入文档时,如果不指定 _id,MongoDB 则会为此文档自动分配一个唯一的 _id,当然您也可以手动定义 _id 的值。
insertOne() 方法
insert() 方法可以同时插入多个文档,但如果您只需要将一个文档插入到集合中的话,可以使用 insertOne() 方法,该方法的语法格式如下:db.collection_name.insertOne(document)
【示例】使用 insertOne() 方法向集合中插入一个文档:> db.user.insertOne({ ... title:"编程帮", ... url:"www.biancheng.net", ... course:"MongoDB教程" ... }) { "acknowledged" : true, "insertedId" : ObjectId("6030d6c4d029695c0c340c42") } > db.user.find() { "_id" : ObjectId("6030d6c4d029695c0c340c42"), "title" : "编程帮", "url" : "www.biancheng.net", "course" : "MongoDB教程" }
insertMany() 方法
与 insert() 方法相同,您可以使用 insertMany() 方法向集合中插入多个文档,但在使用 insertMany() 方法时您需要向方法中传递一个文档数组,如下例所示:> db.user.insertMany([ ... { ... name:"张三", ... phone:"15012345678" ... },{ ... name:"李四", ... phone:"18611112222" ... },{ ... name:"王五", ... phone:"13166668888" ... } ... ]) { "acknowledged" : true, "insertedIds" : [ ObjectId("6030dbf2d029695c0c340c46"), ObjectId("6030dbf2d029695c0c340c47"), ObjectId("6030dbf2d029695c0c340c48") ] } > db.user.find() { "_id" : ObjectId("6030dbf2d029695c0c340c46"), "name" : "张三", "phone" : "15012345678" } { "_id" : ObjectId("6030dbf2d029695c0c340c47"), "name" : "李四", "phone" : "18611112222" } { "_id" : ObjectId("6030dbf2d029695c0c340c48"), "name" : "王五", "phone" : "13166668888" }