Mongodb

一、window安装Mongodb

参考:window 安装mongodb_宠乖仪的博客-CSDN博客

二、linux安装Mongodb

https://blog.csdn.net/qq_53582111/article/details/121049245

三、mongodb图形界面

robo3t官网:Robo 3T | Free, open-source MongoDB GUI (formerly Robomongo)

四、mongodb增删改查

1、查看数据库

show dbs

2、切换数据库/创建数据库

use 数据库名

3、删除数据库

user 需要删除的数据库名

db.dropDatabase()

4、创建集合

db.createCollection(集合名,{capped:true,size:num})

# capped: 默认值为false表示不设置上限,值为true表示设置上限
# size: 当capped的值为true,表示上限大小,当文档达到上限时,会将之前的数据覆盖,单位为字节

5、删除集合

db.集合.drop()

6、查看集合

show tables    # 第一种
show collections  # 第二种

7、数据增加

db.集合名.insert()          # 第一种
db.集合名.save()             # 第二种,注意,如果原来的对象不存在,那他们都可以向collection⾥插                
                                ⼊数据,如果已经存在,save会调⽤update更新⾥⾯的记录
# 插入一条数据
db.集合名.insert({k1:v1,k2:v2,....})

# 插入多条数据
db.集合名.insert([{k1:v1,k2:v2},{k3:v3,k4:v4}])

8、修改数据

db.集合名.updata(
    <query>,                    # 查询条件
    <update>,                   # 更新操作符
    {multi:<boolean>}           # 可选,默认false,表示只更新找到的第一条数据,反之,更新全部数                                            
                                  据
)

# 只更新找到的第⼀条,并且会修改结构,其他字段会消失
db.person.update({name:"aa"},{age:21})
# 只更新数据,为不更新⽂档结构
db.person.update({name:"aa"},{$set:{age:123,socre:98})
# 更新所有找到匹配的数据
db.person.update({name:"aa"},{$set:{age:123}}, {multi: true})

9、删除数据库

db.集合名.delete_one()     
db.集合名。remove({k1:v1},{justOne:true})     # justOne指删除一条数据

10、查询数据

db.集合名.find({条件文档})    # 查找多个
db.集合名.find_one({条件文档})   # 查找一个

查看详细信息

db.集合名.find().explain('executionStats') # 显示查询操作的详
细信息

10.1 运算符

语法操作格式
$eq等于{:}
$lte小于或等于{<key>:{$lte:}}
$gt⼤于{<key>:{$gt:}}
$gte⼤于或等于{<key>:{$gte:}}
$ne不等于 {<key>:{$ne:}}
$or {$or:[{},{}]}
$in在范围内{<key>:{$in:[val1,val2]}}
$lt⼩于{<key>:{$lt:}}
$nin不在范围内{<key>:{$nin:[val1,val2]}}

 10.2 模糊匹配

使⽤//或$regex编写正则表达式

db.集合名.find({name:/^xx/})
db.集合名.find({name:{$regex:'^xx'}}})

10.3 自定义查询

使⽤$where后⾯写⼀个函数,返回满⾜条件的数据 

db.集合名.find({$where:function(){return this.k1>v1}}) 

10.4 limit  ⽤于读取指定数量的⽂档

db.集合名称.find().limit(NUMBER)

 10.5 skip 用于跳过指定数量的文档

db.集合名称.find().skip(number)

10.6 sort 用于对结果集进行排序

db.集合名称.find().sort({字段:1,...})

# 参数1为升序排列
# 参数-1为降序排列

10.7 count 用于统计结果集中文档条数

db.集合名称.find({条件}).count()
db.集合名称.count({条件})

10.8 exists 判断是否有某个字段 

db.集合名称.find({'field':{$exists:true}}) 

 10.9 distinct  去重

db.集合名称.distinct(field)
db.集合名称.distinct(field,{过滤条件 })

  11 聚合函数

语法: 

db.集合名称.aggregate([{管道:{表达式}}])  # 使用多个管道命令

db.集合名称.aggregate({管道:{表达式}})  # 使用1个管道命令

11.1 常⽤表达式

 

11.2 管道命令之$group ⽤来将集合中的⽂档分组,可⽤于统计结果

db.集合名.aggregate(
    {$group:{
        _id:'$v1',  
        k2:{$sum:1}
    }}
)

11.3 管道命令之 $match 

$match ⽤于进⾏数据的过滤,是在能够在聚合操作中使⽤的命令,和 find 区别在于
$match 操作可以把结果交给下⼀个管道处理,⽽ find 不⾏

db.集合名.aggregate([
{$match:{age:{$gt:20}}}
])

 11.4 管道命令之 $project ⽤于修改⽂档的输⼊输出结构,例如重命名,增加,删除字段

例如

 11.5 管道命令之 $sort  ⽤于将输⼊的⽂档排序后输出

11.6 管道命令之 $skip 和 $limit 

1、$limit 限制返回数据的条数
2、$skip 跳过指定的⽂档数,并返回剩下的⽂档数
3、同时使⽤时先使⽤skip在使⽤limit

 12 Mongodb的索引操作

12.1 使用索引的好处

1. 加快查询速度
2. 进行数据的去重

 12.2 mongodb 创建索引的方法

db.集合名.ensureIndex({字段名:1}) ,1表示升序, -1表示降序

12.3 索引的查看方式 

db.集合名.getIndexes()

12.4 删除索引 

db.集合名.dropIndex({'索引字段名称':1})

 12.5 创建唯一索引

db.集合名.ensureIndex({"字段名":1}, {"unique":true}) 

12.6 创建复合索引 

db.集合名.ensureIndex({字段1:1,字段2:1})

五、python操作mongo

python 连接数据库 mongo、mysql_宠乖仪的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

allen wy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值