芒果数据库——精选推荐

更新时间:2023-07-20 07:17:07 阅读: 评论:0

芒果数据库
MongoDB数据库常⽤语句
1. 数据库级常⽤操作
u  databaName                                                # 使⽤库 /  创建库,不会⽴即创建,当需要等到插⼊数据时数据库才会创建show dbs                # 查看系统中的数据库
db.dropDataba()                                                # 删除数据库
2. 集合常⽤操作
show collections                                                      # 查看库中的集合
show tables
db.class0.inrtOne({name:"Levi",age:20,x:'m'})                    # 插⼊⼀条⽂档
带植物的诗句db.class0.inrtMany([{name:"John"},{name:"Lenzer"}])          # 插⼊多条⽂档
3. ⽂档常⽤操作
find(query,field)                              # query  查找条件,相当于where⼦句
# field  查找的域, 0不显⽰,1显⽰
db.class0.findOne({x:'w'},{_id:0,name:1})                # 查询满⾜条件的第⼀条⽂档
⽤于query的特殊操作符:
⽐较操作符:
$eq  等于 ==  ;        $lt  ⼩于  < ;        $lte ⼩于等于 <=;                $in  包含
$ne  不等于  !=;    $gt  ⼤于  > ;          $gte ⼤于等于 >=;        $nin 不包含
逻辑操作符:
$and    逻辑与;          $or  逻辑或;          $not  逻辑⾮;                  $nor
Array数组相关:
$all      e.g.      db.class.find({score:{$all:[49,67]}},{_id:0})        查找同时包含49  67的⽂档
$size      e.g.      db.class1.find({score:{$size:2}},{_id:0})            查找score中包含两个元素的⽂档
$slice    e.g.    db.class1.find({},{_id:0,score:{$slice:2}})          显⽰数组前两项
其他常⽤查找操作符:
$exists    e.g.      db.class1.find({x:{$exists:fal}},{_id:0})        查找不存在x域的⽂档,true:存在,fal:不存在$mod    e.g.      db.class1.find({age:{$mod:[2,1]}},{_id:0})    找出年龄为单数的⽂档
提打挺松
声明书怎么写$type      e.g.    db.class1.find({name:{$type:2}},{_id:0})            查找name域值类型为2的⽂档
查找结果的操作函数:
distinct(filed)    db.class0.distinct('age')      获取某个域的值,去重
pretty()    db.class0.find().pretty()      格式化显⽰查询结果
广播体操第八套完整版
limit(n)    db.class0.find({},{_id:0}).limit(3)      显⽰查询结果前三条
skip(n)      db.class0.find({},{_id:0}).skip(5)    跳过前5条⽂档,显⽰后⾯的查询结果
count()      db.class0.find({x:'w'},{_id:0}).count()  统计性别为w的⽂档个数
sort({field: 1/-1})  db.class0.find({},{_id:0}).sort({age:-1})      查找结果按照降序排序
remove(query,justOne)  ve({x:{$exists:fal}})    删除所有不存在x域的⽂档
justOne=true    ve({x:'w'},true)            删除第⼀条性别为w的⽂档
ve({})      删除class1中所有⽂档
update(query,update,uprt,multi)      query  筛选条件⽤法同find
update  要修改成什么内容通常配合修改操作符(修改器)使⽤
uprt  布尔值,默认是fal  如果query没有筛选到⽂档则不做任何操作
如果设置为true 则如果query没有筛选到匹配⽂档则根据query和update内容插⼊新的⽂档
中学数学教案
multi  布尔值默认fal 表⽰如果有多条符合条件⽂档则只修改第⼀条
如果设置为true则表⽰修改所有符合条件⽂档
db.class0.update({name:'Tom'},{$t:{age:18}})  将Tom的年龄修改为18
修改器:
$t      e.g.      db.class0.update({name:'Lily'},{$t:{age:17}})        Lily年龄修改为17
$unt    e.g.        db.class0.update({name:'Abby'},{$unt:{x:''}})    删除Abby的x域,x后为空字符串$rename  e.g.        db.class0.update({},{$rename:{x:'gender'}},fal,true)      将x域名改为gender $
$inc    e.g.    db.class0.update({},{$inc:{age:1}},fal,true)                所有⼈年龄加1
$mul  e.g.    db.class0.update({},{$mul:{age:0.5}},fal,true)      所有⼈年龄乘以0.5
$min  e.g.        db.class0.update({name:'Levi'},{$min:{age:20}})    Levi age如果⼤于20则修改为20
$max      e.g.        db.class0.update({name:'Lenzer'},{$max:{age:19}})            如果Lenzer age ⼩于19则改为19
数组修改器:
$push  e.g.      db.class1.update({name:'⼩红'},{$push:{score:91}})          给⼩红 score数组中添加⼀项91
$pushAll  e.g.  db.class1.update({name:'⼩乔'},{$pushAll:{score:[94,10]}})    给⼩乔 score数组中添加多项
$pull  e.g.    db.class1.update({name:'⼩红'},{$pull:{score:78}})      从⼩红 score数组中删除⼀项78
$      db.class1.update({name:'⼩乔'},{$pullAll:{score:[92,10]}})    从⼩乔 score数组中删除多项
$each  e.g.  db.class1.update({name:'⼩乔'},{$push:{score:{$each:[99,10]}}})      分别插⼊99  10
$    db.class1.update({name:'⼩明'},{$push:{score:{$each:[67],$position:1}}}) 将67 插⼊到数组1号位置$sort  e.g.    db.class1.update({},{$push:{score:{$each:[],$sort:-1}}},fal,true)    将所有score域的数组降序排序$pop  e.g.    db.class1.update({name:'⼩明'},{$pop:{score:-1}})      删除⼩明score中第⼀项,1:最后⼀项,-1:第⼀项$    db.class1.update({name:'⼩刚'},{$addToSet:{score:81}})      如果数组中没有81 则添加81
时间数据类型
#  mongo中存储时间⼤多为 ISODate
new Date()  e.g.  db.class2.inrt({book:'Python⼊门',date:new Date()})  ⾃动⽣成当前时间
ISODate()  e.g.  db.class2.inrt({book:'Python精通',date:ISODate()})  ⾃动⽣成当前时间
db.class2.inrt({book:'Python崩溃',date:ISODate("2018-07-01 11:15:56")}    指定时间
Date()  e.g.  db.class2.inrt({book:'Python疯狂',date:Date()})  将系统时间转换为字符串
valueOf()    e.g.  db.class2.inrt({book:'Python涅槃',date:ISODate().valueOf()})  获取当前标准时间时间戳
4.索引
sureIndex({name:1})            根据name域创建索引(1:正序索引,-1:逆序索引)
预备的意思sureIndex({age:1},{name:'ageIndex'})        对age域创建索引命名ageIndex
db.class0.dropIndex({name:1})        删除索引,根据键值对
db.class0.dropIndex('ageIndex')        删除索引,根据索引名
索引类型:
sureIndex({name:1,age:-1},{name:'name_age'})    复合索引
sureIndex({name:1},{unique:true})                      唯⼀索引
sureIndex({age:1},{spar:true})        稀疏索引(间隙索引)只对有age域的⽂档创建索引
5.聚合操作
db.class0.aggregate({$group:{_id:'$gender',num:{$sum:'$age'}}})                    # $group  分组聚合需要配合具体的分组统计选项  $sum  : 求和                      # $avg : 求平均数, $max  求最⼤值,$min  求最⼩值
db.class0.aggregate({$project:{_id:0,name:1,age:1}})                              # $project 修改⽂档的显⽰效果
db.class0.aggregate({$match:{age:{$gt:18}}})                                      # $match 数据筛选过滤年龄⼤于18岁的数据⽂档
db.class0.aggregate({$limit:3})                                                    # $limit  筛选前⼏条⽂档
db.class0.aggregate({$skip:3})                                                    # $skip 跳过⼏条⽂档显⽰
db.class0.aggregate({$sort:{age:1}})                                              # 将数据排序
聚合管道:  将上⼀个聚合的操作结果给下⼀个聚合继续操作
db.class0.aggregate([{$match:{gender:'m'}},{$project:{_id:0}},{$sort:{age:1}}])        # match --> project --> sort
6.固定集合
mongodb中可以创建⼤⼩固定的集合,称之为固定集合
特点: 能够淘汰早期数据
插⼊和顺序查找速度更快
可以控制集合的空间⼤⼩
使⽤: 临时缓冲
⽇志处理
# size:表⽰指定集合的⼤⼩字节
# max:指定集合存放⽂档上限
7. pymongo
主机开不了机安装: sudo pip3 install pymongo
conn = pymongo.MongoClient('localhost',27017)                                    # 1.创建数据库连接对象db = conn.stu                                                            # 2.⽣成数据库对象
myt = db.class0                                        # 3.⽣成集合对象
# 4. 集合操作(增删改查索引聚合)舌淡苔白
conn.clo()                                                                # 关闭数据库连接
增:inrt()    inrt_many()    inrt_one()    save()
查:find()    find_one()
改:update(query,update,uprt=Fal,multi=Fal)          update_many()    update_one()
删:remove(query,multi = True)
cursor = db.class0.find()
cursor.hasNext()    # 查看是否有下⼀个结果
<()    # 获取下⼀个结果
游标 cursor 属性: next()    limit()  skip()    count()    sort()
数据库的备份和恢复
备份 mongodump -h host -d dbname -o bak
恢复 mongorestore -h dbhost:port -d dbname path

本文发布于:2023-07-20 07:17:07,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1106483.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:集合   数据库   查找   创建   操作   时间   聚合   结果
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图