MongoDB与Python的交互
驱动模块
- pymongo是python里常用的操作MongoDB的驱动模块
- 可用pip下载安装
pip install pymongo
创建连接
- MongoClient是MongoDB的客户端代理对象,可以用来执行增删改查操作,而且还内置了连接池
from pymongo import MongoClient
client = MongoClient(host="localhost",port=27017)
client.admin.authenticate("admin","123456")
数据写入
- insert_one和insert_many两个函数可向MongoDB写入数据
client.school.student.insert_one({"name":"alex"})
client.school.student.insert_many({"name":"bob"},{"name":"cindy"})
数据查询
- find_one和find两个函数可从MmongDB中查询数据
student = client.school.student.find_one({"name":"alex"})
print(student)
students = client.school.student.find({})
for one in students:
print(one["_id"],one["name"])
- skip:用于数据分类查询
- limit:用于数据分页查询
students = client.school.student.find({}).skip(0).limit(10)
- count_documents:查询记录总数
count = client.school.student.count_documents({})
- distinct:查询不重复的字段
students = client.school.student.distinct("name")
- sort:对查询结果进行排序
students = client.school.student.find().sort([("name",-1)])
数据修改
- update_one和update_many两个函数可以修改MongoDB数据
client.school.student.update_one({"name":"alex"},{"$set":{"sex":"女"}})
client.school.student.update_many({},{"$set":{"grade":"七年级"}})
数据删除
- delete_one和delete_many两个函数可以删除MongoDB数据
client.school.student.delete_one({"name":"alex"})
client.school.student.delete_many({})
存储文件
连接GridFS
- GridFS是MongoDB的文件存储方案,主要用于存储超过16M的文件
from gridfs import GridFS
db = client.school
gfs = GridFS(db,collection="book")
保存文件
- put函数可把文件保存到GridFS中
file = open("D:/Python编程:从入门到实践.pdf","rb")
args = {"type":"PDF","keyword":"Python"}
gfs.put(file,file="Python编程:从入门到实践.PDF",**args)
file.close()
查找文件
- find_one和find函数可以查找GridFS中存储的文件
book = gfs.find_one({"filename":"Python编程:从入门到实践.PDF"})
print(book.keywode)
books = gfs.find({"type":"PDF"})
for one in books:
print(one.filename)
判断是否存储了文件
- exists可判断GridFS是否存储了某个文件
rs = gfs.exists({"filename":"Python编程:从入门到实践.PDF"})
print(rs)
读取文件
- get函数可以从GfridFS中读取文件,并且只能通过主键读取
from bson.objectid import ObjectId
book = gfs.find_one({"filename":"Python编程:从入门到实践.PDF"})
id = book._id
document = gfs.get(ObjectId(id))
file = open("D:/Python从入门到实践.PDF","wb")
file.write(document.read())
file.close()
删除文件
- delect函数可以从GridFS中删除文件,同样只能通过主键删除(先查找到文件的主键)
from bson.objectid import ObjectId
book = gfs.find_one({"filename":"Python编程:从入门到实践.PDF"})
id = book._id
gfs.delete(ObjectId(id))
MongoDB与Python的交互的更多相关文章
- MongoDB之python简单交互(三)
python连接mongodb有多种orm,主流的有pymongo和mongoengine. pymongo 安装相关模块 pip install pymongo pymongo操作 主要对象 Mon ...
- 浅谈mongodb与Python的交互
1. mongdb和python交互的模块 pymongo 提供了mongdb和python交互的所有方法 安装方式: pip install pymongo 2. 使用pymongo 导入pymon ...
- MongoDB 安装详细教程 + 常用命令 + 与 Python 的交互
MongoDB 简介 MongoDB (名称来自 humongous/巨大无比的, 是一个可扩展的高性能,开源,模式自由,面向文档的NoSQL,基于 分布式 文件存储,由 C++ 语言编写,设计之初旨 ...
- MongoDB的聚合操作以及与Python的交互
上一篇主要介绍了MongoDB的基本操作,包括创建.插入.保存.更新和查询等,链接为MongoDB基本操作. 在本文中主要介绍MongoDB的聚合以及与Python的交互. MongoDB聚合 什么是 ...
- MongoDB与python 交互
一.安装pymongo 注意 :当同时安装了python2和python3,为区分两者的pip,分别取名为pip2和pip3. 推荐:https://www.cnblogs.com/thunderLL ...
- MongoDB与python交互
1.Pymongo PyMongo是Mongodb的Python接口开发包,是使用python和Mongodb的推荐方式.官方文档 2.安装 进入虚拟环境 sudo pip install pymon ...
- Redis数据库的学习及与python的交互
1. 数据库简介: 当前主要使用两种类型的数据库:关系型数据库(RDBMS).非关系型数据库(NoSQL); (1). 关系型数据库RDBMS: 是建立在关系模型基础上的数据库,借助于集合代数等数学概 ...
- 基于mongodb的python之增删改查(CRUD)
1,下载mongodb的python驱动,http://pypi.python.org/pypi/pymongo/,根据操作系统和python平台版本选择相应的egg或exe安装. 2,新建一个py脚 ...
- python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查
python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...
随机推荐
- php实用功能小记
1.任意数目的参数 function fun(){ $args = func_get_args(); foreach ($args as $k => $v) { echo "arg&q ...
- 基于Prometheus+Grafana+AlertManager的监控系统
一.Prometheus 1.1 简介 Prometheus是一套开源的监控&报警&时间序列数据库的组合,基于应用的metrics来进行监控的开源工具 . 1.2 下载&安装 ...
- (CSDN迁移) 输入一个链表,从尾到头打印链表每个节点的值
题目描述 输入一个链表,从尾到头打印链表每个节点的值. 思路1. 翻转链表,使用java自带的翻转函数或者从头到尾依次改变链表的节点指针 /** * public class ListNode { * ...
- dubbo问题集合
背景:用于整理在开发过程中遇到的相关问题. Dubbo Server的时候出现“Will not attempt to authenticate using SASL (unknown error)” ...
- Logstash+ Kafka基于AOP 实时同步日志到es
Logstash是一个开源数据收集引擎,具有实时管道功能.Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地,logstash丰富的插件(logstash-in ...
- 查看LINUX进程内存占用情况及启动时间
可以直接使用top命令后,查看%MEM的内容.可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令: (1) top top命令是Linux下常用的性能分 ...
- sync包 — 汇总
sync包 package main; import ( "time" "fmt" ) func main() { //time.Time代表一个纳秒精度的时间 ...
- kubernetes 实践四:Pod详解
本篇是关于k8s的Pod,主要包括Pod和容器的使用.Pod的控制和调度管理.应用配置管理等内容. Pod的定义 Pod是k8s的核心概念一直,就名字一样,是k8s中一个逻辑概念.Pod是docekr ...
- windows10 iis浏览wcf报404.3错误
报错:HTTP错误404.3-Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加MIME映射. 解决步骤如下: 控制面板->打开 ...
- GitHub Action一键部署配置,值得拥有
最近由于自己的个人应用增加,每次都需要在服务器手动发布,觉得特别麻烦,所以想通过代码控制自动发布,直接选择了GitHub Action. GitHub Action持续集成服务,目前已经免费开放使用, ...