[TOC]
# 添加文档
语法: db.集合名.insert({k1:’v1’,k2:’v2’…..})
注意点:
(1)文档就是键值对,数据类型是BSON格式,支持的值更加丰富。
![](https://box.kancloud.cn/3b5bb17b32856129537e4951f35025ee_1710x1112.jpg)
比如:db.集合名.insert({name:’xiaobai’,spc:{weight:100,address:’guangzhou’}})
(2)在添加的文档里面,都有一个’_id’的键,值为对象类型。
![](https://box.kancloud.cn/0be7cf6b542e4620fc6aaef4667a380c_2042x202.jpg)
ObjectId类型:
每个文档都有一个_id字段,并且同一集合中的_id值唯一,该字段可
以是任意类型的数据,默认是一个ObjectId对象。
ObjectId对象对象数据组成:时间戳 |机器码|PID|计数器
`_id`的键值我们可以自己输入,但是不能重复
注意:在插入数据的时候,如果_id的值重复则会报错。
(3)可以使用js代码来完成批量插入文档
# 删除文档
语法:db.集合名.remove({条件})(不写条件删除所有的文档)
例1:删除 php 集合中年龄等于5的文档
db.php.remove({age:5})
例2:删除 php 集合中年龄大于7的文档
使用操作符来完成
常用操作符:
$lt , $lte , $gt , $gte ( < , <= , > , >= ), $ne ( <> ) ,$in , $nin , $or , $not,
$mod (取模), $exists, $where
db.php.remove({age:{‘$gt’:7}})
# 更新文档
方法一,直接修改
语法:db.集合名.update({条件},{新的文档})
语法: db.集合.update(条件,新文档, 是否新增, 是否修改多条)
是否新增:如果值是1(true)则没有满足条件的则添加。
是否修改多条:若值是1(true),如果满足条件的有多个文档则都要修改,
案例1:在PHP集合里面,要修改age=4的文档名称为xiaosi
db.php.update({age:4},{name:’xiaosi’})
方法二,使用修改器
案例2:要修改age=3的文档名称为xiaosan,并且其他键值不能丢失
使用修改器
$inc : 加一个数字
$set : 修改某一个字段,如果该字段不存在就增这个字段
语法:db.集合名.update({条件},{修改器名称:{修改的键:修改的新值}})
db.php.update({age:3},{‘$set’:{name:’xiaosan’}})
案例3:要修改age=1的文档的年龄添加10岁
db.php.update({age:1},{$inc:{age:10}})
# 查询文档
语法:db.集合名.find({条件})
案例1:取出php集合里面第一个文档
db.php.findOne();
案例2:取出php集合里面age=2的文档
db.php.find({age:2})
案例3:取出php集合里面age大于2的文档
db.php.find({age:{‘$gt’:2}})
案例4:取出php集合里面的文档,只显示name键
db.php.find({},{age:1})//1表示只显示age键值
db.php.find({},{age:0})//0表示除了age键值,其他的都显示。
案例5:根据年龄的(降序|升序)来显示文档
db.集合名.find().sort({age:1})根据年龄升序
db.集合名.find().sort({age:-1})根据年龄降序
案例6:显示php集合中前3个文档。
db.php.find().limit(3)
案例7:显示php集合中第3个文档到第5个文档。
db.php.find().skip(2).limit(3)
案例8:统计php集合中文档的个数
db.集合名.count():返回集合中有多少个文档
- SQL
- 名词
- mysql
- 初识mysql
- 备份和恢复
- 存储引擎
- 数据表损坏和修复
- mysql工具
- 数据库操作
- 增
- 删
- 改
- 查
- 数据类型
- 整数类型
- 小数类型
- 日期时间类型
- 字符和文本型
- enum类型
- set类型
- 时间类型
- null与not null和null与空值''的区别
- 数据表操作
- 创建
- 索引
- 约束
- 表选项列表
- 表的其他语句
- 视图
- sql增删改查
- sql增
- sql删
- sql改
- sql查
- sql语句练习
- 连接查询和更新
- 常用sql语句集锦
- 函数
- 字符函数
- 数值运算符
- 比较运算符与函数
- 日期时间函数
- 信息函数
- 聚合函数
- 加密函数
- null函数
- 用户权限管理
- 用户管理
- 权限管理
- pdo
- 与pdo相关的几个类
- 连接数据库
- 使用
- pdo的错误处理
- pdo结果集对象
- pdo结果集对象常用方法
- pdo预处理
- 常用属性
- mysql编程
- 事务
- 语句块
- mysql中的变量
- 存储函数
- 存储过程
- 触发器
- mysql优化
- 存储引擎
- 字段类型
- 三范式和逆范式
- 索引
- 查询缓存
- limit分页优化
- 分区
- 介绍
- 分区算法
- list分区
- range范围
- Hash哈希
- key键值
- 分区管理
- 特别注意
- 分表
- 数据碎片与维护
- innodb表压缩
- 慢查询
- explain执行计划
- count和max,groupby优化
- 子查询优化
- mysql锁机制
- 介绍
- 演示
- 总结
- 乐观锁和悲观锁
- 扛得住的mysql
- 实例和故事
- 系统参数优化
- mysql体系结构
- mysql基准测试
- 索引
- mysql的复制
- win配置MySQL主从
- mysql5.7新特性
- 常见问题
- general log
- 忘记密码
- uodo log与redo log
- 事务隔离级别
- mysql8密码登录
- explain
- 高效的Tree表
- on delete cascade 总结
- mongod
- 简介
- 集合文档操作语句
- 增删改查
- 索引
- 数据导入和导出
- 主从复制
- php7操作mongod
- 权限管理
- redis
- redis简介
- 3.2版本配置文件
- 3.0版本配置文件
- 2.8版本配置文件
- 配置文件总结
- 外网连接
- 持久化
- RDB备份方式保存数据
- AOF备份方式保存数据
- 总结
- win安装redis和sentinel部署
- 事务
- Sentinel模式配置
- 分布式锁
- 管道
- php中redis代码
- 发布订阅
- slowlog
- Redis4.0
- scan和keys
- elasticsearch
- 配置说明
- 启动
- kibana
- kibana下载
- kibana配置文件
- kibana常用功能
- 常用术语
- Beats
- Beats简介
- Filebeat
- Packetbeat
- Logstash
- 配置
- elasticsearch架构
- es1.7
- head和bigdesk插件
- 插件大全
- 倒排索引
- 单模式下API增删改查
- mget获取多个文档
- 批量操作bulk
- 版本控制
- Mapping映射
- 基本查询
- Filter过滤
- 组合查询
- es配置文件
- es集群优化和管理
- logstash
- kibana
- es5.2
- 安装
- 冲突处理
- 数据备份
- 缺陷不足
- 集群管理api
- 分布式事务
- CAP理论
- BASE模型
- 两阶段提交(2PC)
- TCC (Try-Confirm-Cancle)
- 异步确保型
- 最大努力通知型
- 总结