前言
本篇为mongodb篇,包含实例演示,mongodb高级查询,mongodb聚合管道,python交互等内容。
mongoDB的优势
易扩展
大数据量,高性能
灵活的数据模型
安装与启动
安装mongodb:sudo apt-get install -y mongodb-org
安装可视化管理界面:https://robomongo.org/download
查看帮助:mongod –help
启动服务:sudo service mongod start
停止服务:sudo service mongod stop
重启服务:sudo service mongod restart
查看进程:ps ajx|grep mongod
配置文件的位置:/etc/mongod.conf
默认端口:27017
日志的位置:/var/log/mongodb/mongod.log
mongodb数据库操作
数据库操作
查看当前的数据库:db
查看所有的数据库:show dbs /show databases
切换数据库:use db_name
删除当前的数据库:db.dropDatabase()
集合操作
当集合不存在时,插入任何一条数据集合自动创建。
或者手动创建集合:db.createCollection(name,[options])
其中options:
参数capped: 默认值为false表示不设置上限,值为true表示设置上限
参数size: 当capped值为true时,需要指定此参数,表示上限大小,当文档达到上限时,会将之前的数据覆盖,单位为字节
当集合存在时:
查看集合:show collections
删除集合:db.集合名称.drop()
mongodb数据类型
Object ID:文档ID
String: 字符串,最常使用,必须是有效的UTF-8
Boolean: 存储一个布尔值,true或false
Integer: 整数可以是32位或64位,这取决于服务器
Double: 存储浮点值
Arrays: 数组或列表, 多个值存储到一个键
Object: 用于嵌入式的文档, 即一个值为一个文档
Null: 存储Null值
Timestamp: 时间戳,表示从1970-1-1到现在的总秒数
Date: 存储当前日期或时间的UNIX时间格式
注意点:
创建日期语句如下 :参数的格式为YYYY-MM-DD
new Date('2017-12-20')
每个文档都有一个属性,为_id,保证每个文档的唯一性
可以自己去设置_id插入文档,如果没有提供,那么MongoDB为每个⽂档提供了一个独特的_id,类型为objectID
objectID是一个12字节的十六进制数:
前4个字节为当前时间戳
接下来3个字节的机器ID
接下来的2个字节中MongoDB的服务进程id
最后3个字节是简单的增量值
mongodb数据操作
新增
插入数据(字段_id存在就报错):db.集合名称.insert(document)
插入数据(字段_id存在就更新):db.集合名称.save(document)
举个栗子:
#插入文档时,如果不指定_id参数,MongoDB会为文档分配一个唯一的ObjectId
db.xianyu.insert({name:"xianyuplus",age:"3"})
#插入文档时,可以指定_id参数
db.xianyu.insert({_id:"10001",name:"xianyuplus",age:"30"})
#更新了上面_id为1001的文档
db.xianyu.save({_id:"10001",name:"xianyuplus",age:"40"})
查询
查询数据:db.集合名称.find()
举个栗子:
db.xianyu.find()
更新
更新数据:db.集合名称.update( ,,{multi: })
参数query:查询条件
参数update:更新操作符
参数multi:可选,默认是false,表示只更新找到的第一条记录,值为true表示把满足条件的文档全部更新
举个栗子ÿ