mongodb笔记
MongoDB的概念
MongoDB是文档型数据库,用于记录文档结构的数据结构。一条文档就是一条记录,一条记录里可以有包含若干个键值对,键值对由键和值组成,key又叫做字段。
MongoDB的特征
- 高性能:为json等可嵌入数据提供了快速处理能力;提供文档的索引功能,以提高查询速度。
- 丰富的查询语言:为数据聚合、结构文档、地理空间提高丰富的查询功能
- 高可用性:提供数据自动故障转移和数据冗余处理功能
- 水平扩展能力:提供基于多服务器集群的分布式数据处理能力
- 多个存储引擎的支持
查询条件
修改
- 修改某一值,用$set操作符
- 修改数值,做加法运算,直接用$inc操作符,可以是正数,负数,小数
- 修改数值,做乘法运算,直接用$mul操作符,可以是正数,负数,小数
- 修改错误字段的键名,可以直接用$rename操作符
- 删除一个字段,可用$unset操作符
- 将$min给出的值与当前文档字段值进行比较,当给定值较小时则修改当前文档为给定值
- 将$max给出的值与当前文档字段值进行比较,当给定值较大时则修改当前文档为给定值
- 修改数据或嵌套文档:
- 数组:key.index:“arr.1”表示数组的第二个元素
- 对象:key.subkey:“user.name”表示user下的name字段
- 更新多条数据在update的第三个参数使用multi选项
删除
remove的第二个参数的justOne可选,默认值为false,删除符合条件的所有文档;当为true时,表示删除符合条件的一条文档
说明:若要删除整个集合,使用drop方法效率更高,他会把整个集合一次性删除
注意:在数据操作中根本用不上remove方法,在实际的业务中,我们的删除只是假删除,用户的数据实际上还是在数据库中,具体实现方法:只要给某个集合加一个字段来表示当前数据的状态,比如0表示发布状态,1表示草稿状态,2表示删除状态
聚合:合计流水线法
就是把集合里若干个含数值型的文档记录,其键对应的值进行各种分类统计