Mongodb
MongoDB
使用前的小插曲
- 启动mongodb
- mongod --dapath '数据库目录'
- 默认端口 27017
基本操作
- show dbs 查看所有存在磁盘上的数据库
- show tables 查看当前数据库存在磁盘上的数据表
- use 数据库 切换数据库 如果没有就创建
- 数据库.表名 创建表
数据:
MongoDB:
[
{
"id":1,
"name":"jwb",
"age":73,
"hobby":["ywb","lwb"],
"duixiang":{
"id":2,
"name":"ywb",
"age":84
}
},
{
"id":2,
"name":"ywb",
"age":84,
"duixiang":{
"id":1,
"name":"jwb",
"age":73,
}
}
]
数据增删改查
增加 insert
db.user.insert({'id':1, 'name':'alex','age':18})
官方推荐写法
db.user.insertOne({})
db.user.insertMany({})
查看 find
db.user.find()
db.user.findOne({})
db.user.find({'id':2, 'age':23}) 并列条件
$or : db.user.find({ $or:[{'id':2, },{'age':23}}) 或 满足一个即可
同一个字段的 或 条件
$in : db.user.find({age:{$in:[18,19,20]}})
子集检索
db.user.find({ what :{$in: [ 1, 2]}})
$all : 满足所有条件
db.user.find({what: {$all:[a,b,c]}})
更新 update 修改器 $set
db.user.update({'age':23},{$set:{'username':'wusir'}})
官方推荐写法:
db.user.updateOne({'name':"alex"},{$set:'{'age':22}'})
db.user.updateMany({'name':"alex"},{$set:'{'age':22}'})
删除 remove/delete
db.user.remove({'age': 50})
官方推荐写法:
db.user.deleteOne({'name':'alex'})
db.user.deleteMany({'name':'alex'})
$修改器:
$set : 暴力修改
$unset : 暴力删除字段
db.user.updateOne({'name':'alex},{$unset:{'hobby':1}})
$inc : 引用增加 在原有的数值上增加 正数增加,负数减少
db.user.updateMany({},{$inc:{age:1}})
array修改器:
$push 增加元素 : db.user.updateOne({'name':'alex'},{$push:{'hobby':'烫头'}})
$pull 删除元素 :db.user.updateOne({'name':'alex'},{$pop :{'hobby':抽烟}})
$ pushAll 迭代增加 : db.user.update({'name'.'alex'},{$pushAll:{'hobby':[1,2,3]}})
$pop 删除最后一条数据/第一条:
最后一条 db.user.updateOne({'name':'alex'},{$pop:{'hobby':1}})
第一条 db.user.updateOne({'name':'alex'},{$pop:{'hobby':-1}})
$ 字符
['hj','tt',1,2] {'hobby':'hj'} hj是hobby列表中的第0个元素
就把0这个数据放在了$ 中
db.user.updateMany({'hobby':'hj'},{$set:{'hobby.$':'喝酒'}})
存储符合条件的元素下标索引
object操作
db.user.updateOne({"kecheng.name":"python"},{$set:{"kecheng.price":19800}})
db.user.updateOne({"kecheng.name":"python"},{$inc:{"kecheng.price":500}})
Array中的Object
db.user.updateOne({"hobby.age":84},{$set:{"hobby.$.age":73}})
Object中的Array
db.user.updateOne({"kecheng.class":15},{$set:{"kecheng.class.$":20}})
数据类型:
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中的字典,这个数据类型就是字典
N#ull:空数据类型 , 一个特殊的概念,None Null
Timestamp:时间戳
Date:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)
MongoDB中的跳过选取排序:
skip(5) 跳过五条数据
limit(5) 只显示五条数据
分页 skip(5).limit(5)
sort({age:1}) 正序
sort({age:-1}) 倒序
如果三个关键字同时出现 1.sort 2.skip 3.limit
与顺序无关
pymongo:
find_one
insert_one
insert_many
update_one
update_many
delete_one
delete_many
sort("key",1)