MongoDB-NoSql型数据库
1.MongoDB的安装
MongoDB的安装非常简单(傻瓜式安装) 直接去官网下载安装包, 一路确认到底就好了
2.MongoDB的可视化工具
NoSQLBooster for MongoDB
下载安装即可
3.启动MongoDB
mongod --dbpath 数据库目录
默认端口 27017
一些MongoDB的基本命令:
show dbs 查看所有数据库
use 数据库名 使用数据库 如果数据库不存在 会在内存中开辟一块地址用来使用,直到向表中插入数据, 便会向磁盘中写如文件
show tables 查看当前数据库中所有的表
MongoDB 中的名词 与 Mysql对比
mysql mongodb
数据库 数据库
表 collections
列 Field
row documents
4.MongoDB的增删改查
增加:
db.user.insert({"id": 1, "name": "xj", "age":21})
在3.2版本中 官方推出了insertOne, insertMany方法并且推荐使用(提升了效率)
db.user.insertMany([{},{}]) # 批量添加
db.user.insertOne({}) # 添加一个
删除:
db.user.remove({'id': 1})
在3.2版本中 官方退出了deleteOne,deteteMany方法并且推荐使用(提升了效率)
db.user.deleteOne({'id': 1}) # 删除id为1的用户
db.user.deleteMany({age: 21}) # 删除所有年龄为21的用户
更新:
db.user.update({'id': 1}, {$set: {'age': 22}})
在3.2版本中 官方推出了updateOne, updateMany方法并且推荐使用(提升了效率)
db.user.updateOne({'id': 1}, {$set: {'age': 22}}) # 将id为1的用户的年龄改为22
db.user.updateMany({'age': 22}, {$set: {'age': 23}}) # 将年龄为22的用户年龄更改为23
查询:
db.user.find({}) # 查询所有
db.user.findOne({}) # 查询找到的第一个
# 并列条件查询
db.user.find({'id': 1, 'age': 21}) # 查询所有id为1 age为21的用户
# 或条件查询
db.user.find($or: [{'id': 1},{'age': 21}]) # 查询id为1 或者 age为21的用户
# 同一个字段的或条件
db.user.find({'age': {$in: [19,20,21]}}) # 查询所有年龄在19-21之间的用户
# 子集检索
db.user.find({what: {$in: [1,2,3]}})
# 满足所有条件
db.user.find({what: {$all:[2,1,3]}})
# 数学比较符
$gt: 大于 db.user.find({age:{$gt: 20}}) # 查询所有年龄大于20的用户
$gte: 大于等于
$lt: 小于
$lte: 小于等于
$eq: 等于 相当于 ':'
5.MongoDB中的修改器:$
$set: 暴力修改
$unset: 暴力删除字段
$inc: 引用增加 在原有值的基础上增加
db.user.updateOne({'id': 1},{$inc: {'age': 1}}) 把id为1的用户的age在原有基础上加1
5.1.array修改器
$push: 增加元素
db.user.updateOne({'id': 1},{$push: {'hobby': 'sing'}})
在id为1的用户的爱好列表中添加一个sing
$pull: 删除元素
db.user.updateOne({'id': 1},{$pull: {'hobby': 'sing'}})
将id为1的用户的爱好列表中的sing删除
$pushAll:批量添加
db.user.updateOne({'id': 1},{$pull: {'hobby': ['sing', 'read']}})
向id为1的用户的爱好列表中添加两项(sing, read)
$pop: 删除最后一条/第一条
db.user.updateOne({'id': 1}, {$pop: {'hobby': 1}}) 删除最后一条
db.user.updateOne({'id': 1}, {$pop: {'hobby': -1}}) 删除第一条
5.2.$ 字符
db.user.updateMany({'hobby': 'sing'}, {$set:{'hobby.$': play}})
将hobby中为sing的位置修改为play
########### $存储符合条件的元素的下标索引 ###########
5.3.object操作
db.user.updateMany({'hobby.time':'三年'},{$set: {'hobby.name':'speak'}})
将hobby对象的time为三年的hobby的name改为speak
Array中的object:
db.user.updateOne({'hobby.time':'三年'},{$set: {'hobby.$.name':'sing'}})
object中的array
db.user.updateOne({"kecheng.class":15},{$set:{"kecheng.class.$":20}})