一、库操作
show dbs
查看当前服务器存在多少个DB
use ss1db
使用ss1db数据库,如果不存在就创建后使用
show tables
查看当前DB中所有的表(Collection)
二、mongodb的数据存储结构:
user = [{
name:monicx,
age:23,
gender:"man"
},
{...},
{...},
...
]
三、mongodb的增删改查
- 增
insert x 官方已经不推荐使用这个方法了
insertOne({name:"123"}) 插入一条数据行(document)
insertMany([{name:"monicx"},{name:"lisir"},{name:"wansir"}]) 插入多行数据
- 删
deleteOne({name:"123"}) 删除满足条件的第一条数据
deleteMany({name:"123"}) 删除所有满足条件的数据
remove({})清空数据
- 改
update x 官方已经不推荐使用这个LowB的方法了
updateOne({name:"123"},{$set:{gender:"man",age:20}}) 修改满足条件的第一条数据
updateMany({name:"123"},{$set:{gender:"man",age:20}}) 修改所有满足条件的数据
$set: 修改器,将某个Key的值修改为某个值
- 查
查的时候没有findMany
findOne({name:"123"}) 查询满足条件的第一条数据
find({name:"123"}) 查询所有满足条件的数据
四、mongodb中的数据类型:
- ObjectID :Documents 自生成的 _id
- String: 字符串,必须是utf-8
- Boolean:布尔值,true 或者false (这里有坑哦~在我们大Python中 True False 首字母大写)
- Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)
- Double:浮点数 (没有float类型,所有小数都是Double)
- Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)
- Object:如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典
- Null:空数据类型 , 一个特殊的概念,None Null
- Timestamp:时间戳
- ISODate:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)
五、 $(关键字):数学比较符
db.student.find({age:{$lt:25}}) lt小于
db.student.find({age:{$lte:25}}) lte 小于等于
db.student.find({age:{$gt:23}}) gt大于
db.student.find({age:{$gte:23}}) gte大于等于
六、 $(修改器):
- $set: 将某个Key的值修改为某个值
- $unset: 删除字段(field) db.student.updateOne({age:84},{$unset:{head:1}})
- $inc : 将原有值增加多少 db.student.updateOne({age:85},{$inc:{age:10}})
- $push: [].append() 在arrays中在最后位置追加一个数据 db.student.updateOne({age:23},{$push:{hobby:”reding”}})
- $pull: [].remove(item) 在array中删除一个元素 db.student.updateOne({age:23},{$pull:{hobby:”reding”}})
- $pop : 删除array中的第一个或最后一个元素,-1:第一个 1:最后一个
七、$字符的特殊用法:
db.student.updateMany({hobby:"sleep"},{$set:{"hobby.$":"swimming"}})
符合array检索条件的元素下标
遇到array中包含object时使用以下方式
db.school.updateOne({"price.price":17800},{$set:{"price.$.name":"linux"}})
db.school.updateOne({"price.name":"linux"},{$set:{"price.1.name":"linux云计算"}})
八、 三个方法
- limit(2) : 选取,从最前面的2个的数据
- skip(2) : 跳过最前面的2个 条数据从第3条数据开始
- sort({age:1}) : 根据age字段进行从小到大的排序(升序) -1:降序
分页查询:
limit(count).skip(page+count)