Redis相关操作

** MongoDBx相关操作**

MongoBD直接存硬盘,没有数据缓存
创建用户,用户名+密码+权限
db.createUser({user:“A”,pwd:“123”,roles:[“root”]})
删除用户
db.dropUser(‘用户名’)
查看用户
show users
退出
exit
登录
meongo
查看所有数据库
show dbs
**用户登录
db.auth(‘username’,‘pwd’)
**查看当前数据库
db
**切换数据库
use xxx
**新建数据库
db 数据库名
**删除数据库
use 库名
db.dropDatabase()
**查看所有数据表
show collections
**添加数据:
db.表名.insert({"":""})
**删除数据
db.表名.remove({“键”:“值”})
**删除符合条件的一组数据
db.表名.remove({“键”:“值”},{justOne=true})
**表示数据大于某值
{key:{KaTeX parse error: Expected 'EOF', got '}' at position 9: gt:value}̲} **表示数据小于某值 {k…lt:value}}
**把表中数据清空
db.表名.remove({})
*表查找指定条件—关系—且
方法一:db.tablename.find({key1:{KaTeX parse error: Expected 'EOF', got '}' at position 10: gt:value1}̲,key2:value2}) …and:[{key1:{KaTeX parse error: Expected 'EOF', got '}' at position 10: gt:value1}̲},{key2:value2}…or:[{key1:{KaTeX parse error: Expected 'EOF', got '}' at position 10: gt:value1}̲},{key2:value2}…in:[value集合]}})
表范围查找数据–关系–nin
db.stu.find({key:{KaTeX parse error: Expected 'EOF', got '}' at position 14: nin:[value集合]}̲}) **正则表达式** eg…regex:"^李"}})
db.stu.find({name:/李/})
db.stu.find({name:/a/i})
db.stu.find({name:{ r e g e x : ′ a ′ , regex:'a', regex:a,options:‘i’}})
定义函数—where
db.table_name.find({KaTeX parse error: Expected 'EOF', got '}' at position 37: …rn this.age>45}}̲) **查询数据** 跳过查…group 分组:性别分组

db.stu.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: group:{_id:"gender"}}])
2.表达式
$sum $avg $first $last $max $min KaTeX parse error: Expected '}', got 'EOF' at end of input: …tu.aggregate([{group:{_id:“KaTeX parse error: Expected '}', got 'EOF' at end of input: …ender",sunage:{sum:”$age"}}}])
*3.管道-筛选查询 KaTeX parse error: Expected '}', got 'EOF' at end of input: …tu.aggregate([{match:{key"value"}}])
4.管道-综合运用
sb.stu.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: match:{age:{gt:20}}},{KaTeX parse error: Expected '}', got 'EOF' at end of input: group:{_id:"gender",avgage:{ a v g : " avg:" avg:"age"}}}])
管道–投影(project:1或true)

案例:
db.stu.aggregate([
{KaTeX parse error: Expected '}', got 'EOF' at end of input: match:{age:{lt:50}}},
{KaTeX parse error: Expected '}', got 'EOF' at end of input: group:{_id:"like",avgage:{ a v g : " avg:" avg:"age"},avgsum:{ s u m : " sum:" sum:"age"}}},
{KaTeX parse error: Expected 'EOF', got '}' at position 19: …ject:{avgsum:1}}̲,{sort:{avgsum:1}}
])
管道–拆分(unwind)列表

案例:
db.stu.aggregate([
{KaTeX parse error: Expected '}', got 'EOF' at end of input: group:{_id:"gender",allname:{ p u s h : " push:" push:"name"}}},
{ u n w i n d : " unwind:" unwind:"allname"}
])

大数量的索引查询
案例:含有50w数据的data数据库
for (var i = 0;i<500000;i++){
db.data.insert(
{
_id:i,
user:“user”+i,
age:i
}
)
}
查询各个键值所用时间
//_id–56毫秒
db.tablename.find({_id:33333}).explain(‘executionStats’)
//user–274毫秒
db.tablename.find({user:“user33333”}).explain(‘executionStats’)
//age–204毫秒
db.tablename.find({age:33333}).explain(‘executionStats’)
//设置内容key为id提高查询速度
db.tablename.ensureIndex({user:1})
db.tablename.ensureIndex({age:1})
再次查询—1毫秒
db.tablename.find({user:“user33333”}).explain(‘executionStats’)

查看索引
db.tablename.getIndexes()

删除索引
db.tablename.dropIndexes(‘user_1’)//user_1为索引名,查询时,name的值

备份数据库
mongodump -h 本地ip:默认端口号 -d 数据库名 -o 要备份到的路径
mongodump -h 127.0.0.1:27017 -d admin -o /Users/32364/Desktop/beifen
查ip—192.168.56.1
cmd-ipconfig
查mongoDB默认端口号*127.0.0.1:27017
cmd->mongo->db.getMongo()

恢复数据库
mongorestore -h 127.0.0.1:27017 -d database_name --dir /数据所在路径/要恢复数据库名

导出文件(json,csv)
mongoexport -h 127.0.0.1:27017 -d six(数据库名) -c stu(表名) data.json(文件名)
mongoexport -h 127.0.0.1:27017 -d six(数据库名) -c stu(表名) data.csv -f _id,user,age,like(文件名)

导入文件
mongoimport -h 127.0.0.1:27017 -d six -c stu -file data.json

与Python的交互

1>导包pymongo
2>连接数据库服务:
mongo_py = pymongo.MongoClient()
3>创建数据库及数据集合(表)
方法1:
db = mongo_py[‘name’] **数据库名
collection = db[‘name’] **数据集合(表)名
方法2:
collection = mongo_py[“name1”][“name2”] **name1=数据库名,name2=数据集合(表)名
方法3:
collection = mongo_py.name1.mane2 **name1=数据库名,name2=数据集合(表)名
4>插入数据
步骤1:创建一个含有数据的集合{}—name3或含有多个集合的列表—name4
步骤2:用语句完成数据写入
写入一个:collection.insert_one(name3)
写入多个:collection.insert_many(name4)
写入未知个数:collection.insert(…)
5>删除数据
删除一个:
collection.delete_one({“key”:value})
删除多个:
collection.delete_many({“key”:value})
6>修改数据
修改一个:
collectiom.update_one({“key1”:value1},{“KaTeX parse error: Expected 'EOF', got '}' at position 21: …{"key2":value2}}̲)**key2&value2为…set”:{“key2”:value2}})**同上
7>查找数据
查找一个
data=collection.find_one({“key”:value})
print(data)
查找多个
datas=collection.find_many({“key”:value})
for i in datas:
print(i)

8>关闭数据库
mongo_py.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王某求指点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值