MongoDB插入文档(3中方法)

9个月前 (04-27)
前面我们已经介绍了如何在 MongoDB 中创建数据库和创建,接下来我们再来介绍一下如何在中插入文档。文档是 MongoDB 中数据的基本单位,由 BSON 格式(一种计算机数据交换格式,类似于 JSON)的键/值对组成。

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:""

... },{

... name:"李四",

... phone:""

... },{

... name:"王五",

... phone:""

... }

... ])

BulkWriteResult({

"writeErrors" : [ ],

"writeConcernErrors" : [ ],

"nInserted" : 3,

"nUpserted" : 0,

"nMatched" : 0,

"nModified" : 0,

"nRemoved" : 0,

"upserted" : [ ]

})

文档插入成功后您可以使用 find() 方法来查看中文档的内容,如下所示:

> db.user.find()

{ "_id" : ObjectId("6030d907d029695c0c340c43"), "name" : "张三", "phone" : "" }

{ "_id" : ObjectId("6030d907d029695c0c340c44"), "name" : "李四", "phone" : "" }

{ "_id" : ObjectId("6030d907d029695c0c340c45"), "name" : "王五", "phone" : "" }

文档中 _id 为主键 ID,它在每个文档中都是的,在插入文档时,如果不指定 _id,MongoDB 则会为此文档自动分配一个的 _id,当然您也可以手动定义 _id 的值。

insertOne() 方法

insert() 方法可以同时插入多个文档,但如果您只需要将一个文档插入到中的话,可以使用 insertOne() 方法,该方法的语法格式如下:

db.collection_name.insertOne(document)

【示例】使用 insertOne() 方法向中插入一个文档:

> db.user.insertOne({

... title:"编程帮",

... url:"www.biancheng网站站点" rel="nofollow" />

> db.user.insertMany([

... {

... name:"张三",

... phone:""

... },{

... name:"李四",

... phone:""

... },{

... name:"王五",

... phone:""

... }

... ])

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("6030dbf2d029695c0c340c46"),

ObjectId("6030dbf2d029695c0c340c47"),

ObjectId("6030dbf2d029695c0c340c48")

]

}

> db.user.find()

{ "_id" : ObjectId("6030dbf2d029695c0c340c46"), "name" : "张三", "phone" : "" }

{ "_id" : ObjectId("6030dbf2d029695c0c340c47"), "name" : "李四", "phone" : "" }

{ "_id" : ObjectId("6030dbf2d029695c0c340c48"), "name" : "王五", "phone" : "" }