驱动模块

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))

python与mongo_MongoDB与Python的交互相关推荐

  1. php和python交互-Python如何实现简单的用户交互程序(示例)

    本篇文章给大家带来的内容是关于Python如何实现简单的用户交互程序(示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 我们经常使用的程序都会有与用户交互的程序,比如网页的登录, ...

  2. 【Python】如何用python做一个简单的输入输出交互界面?

    看到知乎上有人在问,如何使用Python做一个简单的输入输出交互界面? 交互界面就涉及到GUI编程. Python有很多GUI框架,功能大同小异. 其中比较出名的有「PyQT」.**wxPython. ...

  3. unity和python通讯_Python 与 Unity mlagents 交互 API

    初始化 unity 环境 1 2 3 4 5import numpy as np import matplotlib.pyplot as plt from mlagents.envs import U ...

  4. python交互方式是什么意思_python交互模式是什么

    命令行模式 在Windows开始菜单选择"命令提示符",就进入到命令行模式,它的提示符类似C:\> Python交互模式 在命令行模式下敲命令python,就看到类似如下的一 ...

  5. Python语言学习:Python语言学习之硬件交互应用(arduino、树莓派等)相关的简介、案例应用之详细攻略

    Python语言学习:Python语言学习之硬件交互应用(arduino.树莓派等)相关的简介.案例应用之详细攻略 目录 Python与硬件交互应用 1.适合运行python的嵌入式硬件系统 1.1. ...

  6. 如何使用 Python 的 COM 组件与 ZOS-API 交互构建和优化单透镜

    ZOS-API 是个功能强大的工具,在 ZOS-API 中,用户可以用编程的方式执行OpticStudio 用户界面中可能实现的所有操作(以及更多操作).本文将展示如何使用 Python 与 ZOS- ...

  7. 【python MySQL 笔记】python和MySQL交互、操作

    [python MySQL 笔记]python和MySQL交互.操作 目录 1. 数据准备 2.  SQL演练 2.1 SQL语句强化练习 2.2. 将一个表拆为多个表 3. python操作MySQ ...

  8. MicroPython中Python与C代码是如何交互的

    1.Python代码和C代码字符关联 本节就来介绍下模块扩展过程中Python字符是怎么和C字符(例如:模块名,类名,变量名,函数名等)关联起来的?以ADC 类名字符来举例说明下关联过程的: C代码字 ...

  9. 机器学习从Python 2迁移到Python 3,你需要注意的一些事……

    编译 | AI科技大本营(rgznai100) 参与 | 林椿眄 编辑 | Donna Python 已经成为机器学习及其他科学领域中的主流语言.它不但与多种深度学习框架兼容,而且还包含优秀的工具包和 ...

最新文章

  1. WMIC 命令如何使用?
  2. mongodb消息服务器,win10 MongoDB 3.6 服务端配置
  3. .Net有关问题。在GridView中添加了一个HyperLinkField,用来显示显示详细信息,请教跳转后的详细信息页面该怎样写代码
  4. JavaScript中foreach()用法及使用的坑
  5. 没落的Ubuntu Touch想翻盘:新技术可运行Android应用
  6. ABAP 弹出框自建内容POPUP
  7. 作者:夏虎, 男, 电子科技大学副研究员、 教育大数据研究所所长。
  8. .net mvc ajax 用html()怎么出来正个页面呀,如何使用jquery或ajax为MVC项目更新c#/ asp.net中的razor部分视图...
  9. javax.mail.MessagingException: 501 Syntax: HELO hostname Linux端异常解决
  10. 这是html5中WebGL的演示
  11. 两轮差速驱动机器人运动模型及应用分析(图片版)
  12. 快速部署PostgreSQL
  13. java项目介绍_java项目介绍及创建
  14. 我所佩服的古人——乐毅
  15. photoshop教程裁剪和拉直照片以改善构图
  16. 每日一课 | SQL模糊查找
  17. SSM实现邮箱验证功能
  18. ENVI:(2022年最详细的教程)自定义坐标系
  19. 操作系统 精髓与设计原理 第三章部分题目
  20. 世界上到处都是有才华的穷人_15位年轻有才华的设计师

热门文章

  1. 某华为程序员爆料:主动离职,公司竟也给n+1,到手15万,华为真良心!
  2. 银行选型和排坑实战:用开源软件自建分布式数据服务平台
  3. 换种监控姿势:基于深度学习+流处理的时序告警系统
  4. 如何用飞书统计并跟进个税年度汇算清缴情况?
  5. 「测评系列之少数派」打通 IM 和日历,飞书重新定义文档
  6. 和晋叔吹B讨论业务驱动与架构演进
  7. HTML的标签描述2
  8. Python的设计目标
  9. 07 Java面试反射原理
  10. scanner怎样回到文件开头_怎么申请专利?个人怎样申请国家专利?