Python操作MongoDB数据库

在这里插入图片描述

活动地址:CSDN21天学习挑战赛

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。

学习日记

目录

学习日记​​​​​​​

一、前言介绍

1、类比

2、MongoDB特点:

二、安装MongoDB库

 三、MongoDB相关

1、概念

2、数据类型

Warn:

四、 MongoDB的基本使用

1、启动MongoDB服务端

2、启动MongoDB客户端

五、MongoDB常用命令

1、数据库操作

2、集合操作

六、MongoDB的增删改查

1、增(插入数据)

2、删(删除数据)

3、改(修改数据)

4、查(查询数据)

七、Python连接MongoDB

1、指定地址和端口连接

2、通过URI连接


一、前言介绍

1、类比

SQL:结构化查询语言.用于操作关系型数据库。
NoSQL:非关系型数据库。不能使用SQL。
MongoDB数据库是一种NoSQL数据库,是一个开源的数据库系统。

2、MongoDB特点:

(1)用于web用户的数据存储

(2)数据结构:key - value

(3)存储文档类似于JSON

二、安装MongoDB库

在win+r输入cmd后输入指令下载

pip install pymongo

 这样即安装完成。

 三、MongoDB相关

1、概念

2、数据类型

Warn:


   每个文档都有一个不同的属性(_id),保证每个文档的唯一性。可手动设置_id的值,没有手动设置则会自动提供一个独特的_id,类型为objectID。objectID是一个12字节的十六进制数,每个字节两位,一共是24位的字符串:
                                             前4个字节(8位)为时间戳
                                             接下来的3个(6位)是机器ID
                                             再然后2个(4位)是MongoDB服务进程ID
                                             最后3个(6位)是简单的增量值
 

四、 MongoDB的基本使用

1、启动MongoDB服务端

启动/停止/重启:                 sudo service mongod start/stop/restart
验证数据库是否正常启动:     grep -v '#' /etc/mongod.conf

启动方式:    sudo mongod [--dbpath] [--logpath] [--append] [--fork] [--auth] [-f]

不带参数时,要手动创建数据存储目录/data/db

--dbpath:指定数据库的存储路径

--logpath:指定日志的存放路径

--append:设置日志的写入形式为追加

--fork:开启新的进程运行MongoDB服务

--auth:以权限认证的方式启动

-f 路径:设置配置文件路径

验证是否启动成功:      ps -aux | grep mongod

 

2、启动MongoDB客户端

启动:mongo
退出:exit
查看帮助:mongo -help

五、MongoDB常用命令

1、数据库操作

查看当前数据库:db

查看所有数据库:show dbs

切换数据库:use 数据库名

删除当前数据库:db.dropDatabase()

2、集合操作

自动创建集合:   向不存在的集合中第一次添加数据时,集合会被自动创建
手动创建:
db.createCollection("集合名")

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

capped:默认值为false,表示没有上限,true则为设置上限

size:集合所占用的最大上限字节数,超出上限则会覆盖之前的数据

查看集合:show collections

删除集合:db.集合名.drop()

检查集合是否设有上限:db.集合名.isCapped()

六、MongoDB的增删改查

1、增(插入数据)

单条插入:db.集合名.insert({数据})
db.name.insert({"cjl":19})

多条插入:db.集合名.insert([{数据1},{数据2}])
db.name.insert([{"cjl":19},{"syf":20}])

2、删(删除数据)

db.集合名.remove({查询条件},{justOne:boolean})

justOne:默认false删除全部符合条件的,true删除一条
db.name.remove({"age":18},{justOne:true})
 

3、改(修改数据)

保存:db.集合名.save({_id:"xxx"})
通过_id定位到数据,如果存在则修改该数据,不存在则新增该数据
db.name.save({_id:"xxx","name":"cjl"})

更新:db.集合名.update({查询条件},{更新操作符},{multi:boolean})
multi:默认false只更新第一条,true全部更新,必须和$set一起使用

全文档覆盖更新
db.name.update({name:'x'},{name:'y'})

指定键值更新:
db.name.update({name:'x'},{$set:{name:'y')}}

更新全部
db.name.update({},{$set:{age:18}},{multi:true})

4、查(查询数据)

db.集合名.find({条件})                       查询该集合内的所有符合条件的数据
.pretty()                                             格式化输出
db.集合名.findOne({条件})                查询该集合内的第一条数据
db.集合名.find({条件}).count()           统计个数查询
db.集合名.distinct("xxx",{条件})         去除重复查询
相关查询条件:

比较运算符:
小于:$lt                                                小等:$lte
大于:$gt                                               大等:$gte
不等:$ne

逻辑运算符:
与关系:$and
简洁格式:db.name.find({age:{$gt:18},sex:true})
复杂格式:db.name.find({$and:[{age:{$gt:18},sex:true}]})
 

或关系:$or
db.name.find({$or:[{age:{$gt:18},sex:true}]})

范围运算符:
包含:$in
db.name.find({age:{$in:[18,19,20]}})
不包含$nin
db.name.find({age:{$nin:[18,19,20]}})
 

正则表达式
正则表达式:$regex
db.name.find({name:{$regex:'^c'}})

七、Python连接MongoDB

    通常有两种方式连接MongoDB数据库,一种是通过指定地址和端口直接连接,另一种是将连接地址拼接成URI的格式进行连接。

1、指定地址和端口连接

import pymongo

client = pymongo.MongoClient(host='localhost',port=3717,username='root',password='root')
# 连接数据库
db = client.testDatabase 
# 连接到users集合
users= db.users

print(db.list_collection_names()) # 获取数据库中所有集合名称
print(users.count()) # 统计users集合的文档数

2、通过URI连接

URI的格式:mongodb://username:password@ip:port

import pymongo
uri = "mongodb://root:root@localhost:3717"
client = pymongo.MongoClient(uri)
# 连接数据库
db = client.testDatabase 
# 连接到users集合
users= db.users

print(db.list_collection_names()) # 获取数据库中所有集合名称
print(users.count()) # 统计users集合的文档数

  • 4
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

醉蕤

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

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

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

打赏作者

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

抵扣说明:

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

余额充值