插入文档
MongoDB文档的数据结构和JSON基本一样。
所有存储在集合中的数据都是BSON格式,BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。
insert
db.COLLECTION_NAME.insert(document)
>db.col.insert({title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: 'MongoDB中文网',
url: 'http://www.mongodb.org.cn',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
})
insertone 与 insertMany
MongoDB 3.2 更新后新增以下两种新的文档插入命令如下:
db.collection.insertone ()
db.collection.insertMany()
使用 insertOne() 插入一条文档的代码如下:
db.test.iusertone( { item: "card", qty: 15 } );
使用 insertMany() 插入多条文档的代码如下:
db.test.insertMany([
{ item: "card", qty: 15 },
{ item: "envelope", qty: 20 },
{ item: "stamps", qty:30 }
]);
save
插入文档你也可以使用 db.col.save(document) 命令。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。
对于插入一个存在_id 字段的文档:
- insert: 若新增数据的主键已经存在,则会抛org.springframework.dao.DuplicateKeyException 异常提示主键重复,不保存当前数据。
- save: 若新增数据的主键已经存在,则会对当前已经存在的数据进行修改操作。
其他插入方式
MongoDB提供了以下将文档插入到集合中的方法:
与upsert:true选项一起使用时的db.collection.update()
db.collection.updateOne()与upsert:true选项一起使用时
db.collection.updateMany()与upsert:true选项一起使用时
db.collection.findAndModify()与upsert:true选项一起使用时
db.collection.findOneAndUpdate()与upsert:true选项一起使用时的
db.collection.findOneAndReplace()与upsert:true选项一起使用时。
db.collection.save()
db.collection.bulkWrite()