MongoDB 插入文档

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: MongoDB 插入文档

本章节中我们将向大家介绍如何将数据插入到 MongoDB 的集合中。


文档的数据结构和 JSON 基本一样。


所有存储在集合中的数据都是 BSON 格式。


BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。


插入文档

MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:


db.COLLECTION_NAME.insert(document)

db.COLLECTION_NAME.save(document)

save():如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使用 db.collection.insertOne() 或 db.collection.replaceOne() 来代替。

insert(): 若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保存当前数据。

3.2 版本之后新增了 db.collection.insertOne() 和 db.collection.insertMany()。


db.collection.insertOne() 用于向集合插入一个新文档,语法格式如下:


db.collection.insertOne(

  <document>,

  {

     writeConcern: <document>

  }

)

db.collection.insertMany() 用于向集合插入一个多个文档,语法格式如下:

db.collection.insertMany(

  [ <document 1> , <document 2>, ... ],

  {

     writeConcern: <document>,

     ordered: <boolean>

  }

)

参数说明:


document:要写入的文档。

writeConcern:写入策略,默认为 1,即要求确认写操作,0 是不要求。

ordered:指定是否按顺序写入,默认 true,按顺序写入。

实例

以下文档可以存储在 MongoDB 的 runoob 数据库 的 col 集合中:


>db.col.insert({title: 'MongoDB 教程',

   description: 'MongoDB 是一个 Nosql 数据库',

   by: '菜鸟教程',

   url: 'http://www.runoob.com',

   tags: ['mongodb', 'database', 'NoSQL'],

   likes: 100

})

以上实例中 col 是我们的集合名,如果该集合不在该数据库中, MongoDB 会自动创建该集合并插入文档。


查看已插入文档:


> db.col.find()

{ "_id" : ObjectId("56064886ade2f21f36b03134"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }

>

我们也可以将数据定义为一个变量,如下所示:


> document=({title: 'MongoDB 教程',

   description: 'MongoDB 是一个 Nosql 数据库',

   by: '菜鸟教程',

   url: 'http://www.runoob.com',

   tags: ['mongodb', 'database', 'NoSQL'],

   likes: 100

});

执行后显示结果如下:


{

       "title" : "MongoDB 教程",

       "description" : "MongoDB 是一个 Nosql 数据库",

       "by" : "菜鸟教程",

       "url" : "http://www.runoob.com",

       "tags" : [

               "mongodb",

               "database",

               "NoSQL"

       ],

       "likes" : 100

}

执行插入操作:


> db.col.insert(document)

WriteResult({ "nInserted" : 1 })

>

插入文档你也可以使用 db.col.save(document) 命令。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。


相关文章
|
7月前
|
NoSQL MongoDB 微服务
微服务——MongoDB常用命令——文档的分页查询
本文介绍了文档分页查询的相关内容,包括统计查询、分页列表查询和排序查询。统计查询使用 `count()` 方法获取记录总数或按条件统计;分页查询通过 `limit()` 和 `skip()` 方法实现,控制返回和跳过的数据量;排序查询利用 `sort()` 方法,按指定字段升序(1)或降序(-1)排列。同时提示,`skip()`、`limit()` 和 `sort()` 的执行顺序与编写顺序无关,优先级为 `sort()` &gt; `skip()` &gt; `limit()`。
251 1
|
7月前
|
JSON NoSQL MongoDB
微服务——MongoDB常用命令——文档基本CRUD
本文介绍了MongoDB中文档的基本操作,包括插入、查询、更新和删除。单个文档插入使用`insert()`或`save()`方法,批量插入用`insertMany()`。查询所有文档用`find()`,条件查询可在`find()`中添加参数,投影查询控制返回字段。更新文档通过`update()`实现,支持覆盖修改、局部修改(使用`$set`)和批量修改。列值增长可用`$inc`实现。删除文档用`remove()`,需谨慎操作以免误删数据。此外,文档键值对有序,区分大小写,不能有重复键。
134 1
|
12月前
|
NoSQL MongoDB 数据库
MongoDB 更新文档
10月更文挑战第14天
243 2
|
12月前
|
存储 NoSQL MongoDB
数据的存储--MongoDB文档存储(二)
数据的存储--MongoDB文档存储(二)
269 2
|
9月前
|
存储 监控 NoSQL
【赵渝强老师】MongoDB文档级别的并发控制
MongoDB使用WiredTiger存储引擎在文档级别进行并发控制,允许多个写操作同时修改不同文档,但对同一文档的修改需序列化执行。引擎采用乐观锁和意向锁机制处理冲突。通过视频讲解、插入大量文档示例及使用`mongotop`和`db.serverStatus()`命令,演示了如何监控MongoDB的锁信息和读写统计,展示了数据库和集合级别的写锁情况。
236 29
|
12月前
|
SQL NoSQL MongoDB
MongoDB 查询文档
10月更文挑战第15天
330 1
|
12月前
|
存储 NoSQL 关系型数据库
数据的存储--MongoDB文档存储(一)
数据的存储--MongoDB文档存储(一)
543 3
|
12月前
|
NoSQL MongoDB
MongoDB 删除文档
10月更文挑战第15天
224 0
|
12月前
|
存储 JSON NoSQL
MongoDB 插入文档
10月更文挑战第14天
424 0

推荐镜像

更多