Python pyMongo操作指南:增/删/改/查/合并/统计与数据处理
Python pyMongo操作指南:增/删/改/查/合并/统计与数据处理
文章目录
1 mongodb安装
1.1 下载 MongoDB 镜像
1.2 运行 MongoDB 镜像
1.3 添加管理员账号
1.4 用新创建的 root 账户连接,测试一下
2 可视化界面Robo 3T
3 pymongo增删改查
3.1 数据库连接
3.2 建表collection
3.3 文档插入与删除
关于Unicode编码的字符串注意点
3.4 数据更新update
3.5 数据替换replace
3.6 查询
3.6.0 查询库中的collection
3.6.1 单条与多条查询
3.6.2 使用操作符指定条件查询
3.6.3 查询 – 逻辑与/非
3.6.4 “$in” – 判断键值是否为null
3.6.5 “$all” – 数组精确匹配
3.6.6 “i n ” 、 ” in”、”in”、”nin”
3.6.7 “$and” – 选择出满足该数组中所有表达式的文档
3.6.8 “$nor” – 选择出都不满足该数组中所有表达式的文档
3.6.9 “$not” – 选择出不能匹配表达式的文档
3.6.10 “$or” – 选择出至少满足数组中一条表达式的文档
3.6.11 “$exists” – 选择存在该字段的文档
3.6.12 “$regex” – 对字符串的执行正则匹配
3.6.13 计数 聚集记录的总数
3.6.14 查询 – 排序
3.7 加索引
3.8 数据聚合
4 数据库备份与恢复
4.1 备份
4.2 导入
4.3 恢复
4.4 超大规模数据导出
延伸一:内存问题
延伸二:一开始占用内存到80%,后来一直上升,95%,再后来就OOM了
延伸三:BulkWriteError: batch op errors occurred
参考文献
1 mongodb安装
一文教你如何通过 Docker 快速搭建各种测试环境这篇超帅,教你阿里云服务器快速安装,redis、mysql、mongoDB、elesticsearch等,而且比较全,刚好满足最近笔者的所有需求。
1.1 下载 MongoDB 镜像
这里以 mongo 4 版本为例,下载镜像:
docker pull mongo:4
1
下载完成后,确认一下镜像是否下载成功:
验证 MongoDB 镜像是否下载成功
1.2 运行 MongoDB 镜像
下载成功后,运行 MongoDB 镜像:
docker run -d \
--name mongo \
-v /etc/localtime:/etc/localtime:ro \
-v /home/docker/mongo/configdb:/data/configdb \
-v /home/docker/mongo/data:/data/db \
-p 27017:27017 \
mongo:4 \
--auth
其中,–auth的代表是否需要身份验证,其他相关参数:
-d:以后台的方式运行;
–name mongo:指定容器名称为 mongo;
-v /usr/local/docker/mongo/configdb:/data/configdb:将容器中 /data/configdb 目录挂载到宿主机的 /usr/local/docker/mongo/configdb 目录下;
-v /usr/local/docker/mongo/data:/data/db:将容器中 /data/db 数据目录挂载到宿主机的 /usr/local/docker/mongo/data 目录下;
-p 27017:27017:将容器的 27017 端口映射到宿主机的 27017 端口;
执行命令完成后,查看下容器是否启动:
1.3 添加管理员账号
执行命令:
docker exec -it mongo mongo admin
1
然后,创建一个拥有最高权限 root 账号:
db.createUser({user:’admin’,pwd:’qwer@1234′,roles:[ {role:’root’,db:’admin’} ]})
1
创建成功后,你会看到 Successfully added user:
1.4 用新创建的 root 账户连接,测试一下
docker run -it –rm –link mongo:mongo mongo mongo -u admin -p qwer@1234 –authenticationDatabase admin mongo/admin
1
连接成功后,我们可以执行相关 SQL:
显示所有的数据库:
show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
使用某个数据库:
use admin
输入命令 exit,退出连接!
2 可视化界面Robo 3T
Studio 3T:专业人士使用的,需要付费。
Robo 3T:虽然免费,但是大部分功能都已经足够。
安装连接:
https://robomongo.org/download
可参考连接:MongoDB可视化工具–Robo 3T 使用教程
3 pymongo增删改查
pymongo的安装:
pip3 install --pre pymongo -i https://pypi.tuna.tsinghua.edu.cn/simple
3.1 数据库连接
import urllib
from pymongo import MongoClient
#urllib.parse.quote_plus(user)
user = "admin"
password = "qwer@1234"
host = 'xxx.xxx.xxx.xxx'
port = 27017
client = MongoClient('mongodb://{0}:{1}@{2}:{3}'.format(urllib.parse.quote_plus(user),urllib.parse.quote_plus(password),host,port))
db = client.mydb
因为是阿里云上的服务器,又需要验证,之前一直报错:
pymongo.errors.OperationFailure: Authentication failed.
1
这网上一大堆解决教程,真尼玛都是哪个版本的解决方案。。后面,找到这个上面的方式联通了。。
3.2 建表collection
# 创建聚集 - 相当于建表
collection = db.my_collection
# posts = db.posts 可以随意取名字
# 所有聚集的名称
db.collection_names()
>>> ['my_collection']
————————————————
版权声明:本文为CSDN博主「悟乙己」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sinat_26917383/article/details/99637765