MongoDB概述
优点:
1.易扩展数据之间无关系2.大数据量,高性能,数据库的结构简单3.灵活性,NoSQL无需事先为要储存的数据设置字段,随时可以存储格式
缺点:
数据重复存储,占用空间大
MongoDB中的三要素:
数据库,集合,文档
MongoDB-Ubuntu安装与配置
# apt-get安装: sudo apt-get install -y mongodb-org # 参考文档 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
操作MongoDB服务端的后台服务
# 启动mongod后台服务 sudo service mongod start # 停止mongod后台服务 sudo service mongod stop # 重启mongod后台服务 sudo service mongod restart # 创建文件夹,设置权限 sudo mkdir -p /data/db sudo chmod 777 /data/db # 查看是否启动成功 ps ef|grep mongod
数据库的操作命令
db # 查看当前数据库 show dbs/show databases # 查看所有数据库 use db_name # 切换数据库,没有数据库时就创建一个数据库 db.dropDatabase() # 删除数据库 # db代表的是当前数据库
操作集合
格式:
db.createCollection(name,options)
db.crateCollection('stu') # 创建一个stu集合 db.createCollection('sub',{capped:true,size:10}) # capped 是否设置上限 size 表示上限大小,单位字节 show collections # 查看当前数据库中所有的集合 db.集合名.drop() #根据集合名删除集合
常见的数据类型
Object ID | -- ⽂档ID -- 在插入数据的时候, 如果不指定文档_id字段, 会自动生成ObjectID 类型的ID -- objectID是⼀个12字节的⼗六进制数,每个字节两位,一共是24 位的字符串: 前4个字节为当前时间戳 接下来3个字节的机器ID 接下来的2个字节中MongoDB的服务进程id 最后3个字节是简单的增量值 |
String | 字符串,最常量,必须是有效的UTF-8 |
Boolean | 存储一个布尔值,true或false |
integer | 整数可以是32位或者64位,取决于服务器 |
Double | 存储浮点型 |
Arrays | 数组或者列表,多值存储到一个键 |
Object | 用于嵌入式文档,即一个值位一个文档 |
Null | 存储Null值 |
Timestamp | 事件戳,表示从1970-1-1到现在 |
Data | 存储当前日期或者时间的UNIX时间格式 |
增删改查
插入数据 :
db.集合名称.insert(document)
db.stu.insert({name:'kadycui',gender:1}) db.stu.insert({id:'20180101',name:'kadycui',gender:1})
保存数据:
db.集合名称.save(document)
save与insert的区别:
1.insert插入_id相同的数据报错
2.save保存_id相同的数据会覆盖原来的数据
简单查询:
db.集合名称.find()
db.stu.fund()
更新操作 :
db.集合名称.update<query>,<update>,{multi:<boolean>}
1.参数query:查询条件
2.参数update:更新操作符
3.参数multi可选,默认是false表示只跟新找到的第一条记录,值为true表示吧满足的文档全部更新
db.stu.update({name:'hr'},{name:'mnc'}) # 更新一条 db.stu.update({name:'hr'},{$set:{name:'hys'}}) # 更新一条 db.stu.update({},{$set:{gender:0}},{multi:true}) # 更新全部
删除操作:
db.集合名称.remove(<query> ,{justOne: <boolean>})
db.stu.remove()