不管是何种方式插入,都是有插入顺序的,最新插入的放在后面。
<br/>
**1. `insert`方式插入**
```sql
> db.customer.insert({name: "gyw", mobile: "12345678", email: "xxx@163.com"})
WriteResult({ "nInserted" : 1 })
# 查看是否插入成功
> db.customer.find()
{ "_id" : ObjectId("6050c17144f167bbabdf6aaf"), "name" : "gyw", "mobile" : "12345678", "email" : "xxx@163.com" }
```
**2. `save`方式插入**
```sql
> db.customer2.save({name: "gyw", mobile: "12345678", email: "xxx@163.com"})
WriteResult({ "nInserted" : 1 })
> db.customer2.find()
{ "_id" : ObjectId("6050c34744f167bbabdf6ab0"), "name" : "gyw", "mobile" : "12345678", "email" : "xxx@163.com" }
```
<br/>
**`insert`和`save`的比较:**
<mark>相同点:</mark>
(1)第一次插入数据时,不需要预先创建一个集合customer,插入数据时会自动创建。
(2)每次插入数据时如果没有显示的指定字段`_id`,则会默认创建一个主键`_id`。在关系数据库中主键大多数是数值类型,且是自动增长的序列。而MongoDB 中的主键值类型则为 Objectld 类型,这样设计的好处是能更好的支持分布式存储。
<mark>不同点:</mark>
(1)`insert` 可以理解 就是 插入 操作;如果主键存在,则抛异常;
(2)`save` 可以理解为 插入或 更新;如果 `_id` 的值存在就更新,不存在就插入。
<br/>
**3. 结合js插入**
MongoDB可以结合JavaScript代码。
```sql
> for(var i=1; i<=30; i++) db.customer.insert({id: i, name: "xi"+i, age: 100+i})
WriteResult({ "nInserted" : 1 })
> db.customer.find()
{ "_id" : ObjectId("6050ca0444f167bbabdf6ab1"), "id" : 1, "name" : "xi1", "age" : 101 }
{ "_id" : ObjectId("6050ca0444f167bbabdf6ab2"), "id" : 2, "name" : "xi2", "age" : 102 }
{ "_id" : ObjectId("6050ca0444f167bbabdf6ab3"), "id" : 3, "name" : "xi3", "age" : 103 }
```
<br/>
**4. 单个插入**
```
insert、save、insertOne都是单个插入,不推荐使用insert插入。
```
```sql
> db.customer.insertOne({name: "zhangsan", mobile: "13778899", email: "xxx@163.com"})
{
"acknowledged" : true,
"insertedId" : ObjectId("6050e1d544f167bbabdf6ad0")
}
```
<br/>
**5. `insertMany`批量插入**
```sql
> db.customer.insertMany([
... {name: "lisi", mobile: "456899343", email: "xxx@163.com"},
... {name: "wangwu", mobile: "3479247798", email: "xxx@163.com"}
... ])
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("6050e2f744f167bbabdf6ad1"),
ObjectId("6050e2f744f167bbabdf6ad2")
]
}
```
- MySQL
- MySQL是什么
- MySQL环境搭建
- centos7-MySQL8
- windows-MySQL8
- 数据库软件
- sqlyog软件安装
- navicat软件安装
- powerDesigner软件安装
- RDBMS术语
- SQL语句组成
- 数据库系统组成
- 数据库操作
- 数据表操作
- 查询语句
- 基本语法
- 子查询
- 表连接
- 查询语句执行顺序
- 事务
- 事务是什么
- 事务的作用
- 事务的4个特性
- 事务隔离级别
- 事务的实现
- 索引
- 索引的作用
- 索引操作
- 存储引擎
- 备份与恢复
- 视图
- 视图是什么
- 视图的作用
- 创建视图
- 查看视图
- 更改视图
- DML操作视图
- 删除视图
- 存储过程与函数
- 过程与函数是什么
- 存储过程操作
- 定义存储过程
- 调用存储过程
- 查看存储过程
- 删除存储过程
- 修改存储过程
- 函数操作
- 过程与函数区别
- 流程控制
- if语句
- case语句
- while循环语句
- repeat循环语句
- loop循环语句
- 变量
- 处理程序
- 光标
- Redis
- 简介
- 下载与安装
- 命令操作redis数据库
- 通用命令
- 数据操作
- 持久化
- Windows上的持久化操作
- 数据库设计
- 数据库设计过程
- ER模型图
- MongoDB
- MongoDB是什么?
- MongoDB特性
- MongoDB 数据模型
- 安装MongoDB
- MongoDB认证
- Database操作
- Collection操作
- Document操作
- 插入
- 查询
- 更新
- 删除
- buckWrite
- MongoDB索引
- 副本集
- 聚焦分析
- 事务管理
- 写关注
- 读关注