驱动模块

  • 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的交互的更多相关文章

  1. MongoDB之python简单交互(三)

    python连接mongodb有多种orm,主流的有pymongo和mongoengine. pymongo 安装相关模块 pip install pymongo pymongo操作 主要对象 Mon ...

  2. 浅谈mongodb与Python的交互

    1. mongdb和python交互的模块 pymongo 提供了mongdb和python交互的所有方法 安装方式: pip install pymongo 2. 使用pymongo 导入pymon ...

  3. MongoDB 安装详细教程 + 常用命令 + 与 Python 的交互

    MongoDB 简介 MongoDB (名称来自 humongous/巨大无比的, 是一个可扩展的高性能,开源,模式自由,面向文档的NoSQL,基于 分布式 文件存储,由 C++ 语言编写,设计之初旨 ...

  4. MongoDB的聚合操作以及与Python的交互

    上一篇主要介绍了MongoDB的基本操作,包括创建.插入.保存.更新和查询等,链接为MongoDB基本操作. 在本文中主要介绍MongoDB的聚合以及与Python的交互. MongoDB聚合 什么是 ...

  5. MongoDB与python 交互

    一.安装pymongo 注意 :当同时安装了python2和python3,为区分两者的pip,分别取名为pip2和pip3. 推荐:https://www.cnblogs.com/thunderLL ...

  6. MongoDB与python交互

    1.Pymongo PyMongo是Mongodb的Python接口开发包,是使用python和Mongodb的推荐方式.官方文档 2.安装 进入虚拟环境 sudo pip install pymon ...

  7. Redis数据库的学习及与python的交互

    1. 数据库简介: 当前主要使用两种类型的数据库:关系型数据库(RDBMS).非关系型数据库(NoSQL); (1). 关系型数据库RDBMS: 是建立在关系模型基础上的数据库,借助于集合代数等数学概 ...

  8. 基于mongodb的python之增删改查(CRUD)

    1,下载mongodb的python驱动,http://pypi.python.org/pypi/pymongo/,根据操作系统和python平台版本选择相应的egg或exe安装. 2,新建一个py脚 ...

  9. python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查

    python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...

随机推荐

  1. 简单的Lock死锁例子

    static void Main(string[] args) { lock (_lock1) { var t = new Thread(() => { lock (_lock1) { Cons ...

  2. docker下安装nginx并实现https访问

    一.启动容器 docker run --detach --name wx-nginx -p 443:443 -p 80:80 -v /home/nginx/data:/usr/share/nginx/ ...

  3. 关于close_wait状态的理解

    以web服务器产生大量的close_wait状态为例 1.close_wait状态介绍: 客户端主动关闭连接,服务器接收到客户端的FIN,但是还没有发送自己的FIN,此时的状态为close_wait状 ...

  4. 2. RDD编程

    2.1 编程模型 在Spark中,RDD被表示为对象,通过对象上的方法调用来对RDD进行转换.经过一系列的transformations定义RDD之后,就可以调用actions触发RDD的计算,act ...

  5. 协议——VGA

    VGA(Video Graphics Array)是IBM在1987年随PS/2机一起推出的一种视频传输标准,具有分辨率高.显示速率快.颜色丰富等优点,在彩色显示器领域得到了广泛的应用.不支持热插拔, ...

  6. [LOJ3048] [十二省联考2019] 异或粽子

    题目链接 LOJ:https://loj.ac/problem/3048 洛谷:https://www.luogu.org/problemnew/show/P5283 Solution 考虑每个子串都 ...

  7. idea 终端terminal修改git bash

    1 Ctrl+Alt+s 打开设置修改shell path 2 Alt +12 或View + Tool Windows + Terminal 修改成功

  8. select ng-change 方法中 拿不到 ng-modal 定义的变量值

    在使用angularjs框架的项目中,select 的数据源有两种绑定方式,在option中使用ng-repeat循环绑定,或者在select中使用ng-option 绑定. 无论哪种绑定方式,均要使 ...

  9. gitlab用户登录与AD域用户集成

    ---恢复内容开始--- 编辑gitlab.rb文件 sudo vi /etc/gitlab/gitlab.rb 下图是我编辑的内容示例(仅供参考): 编辑以下内容: gitlab_rails['ld ...

  10. String字符串常用方法

    1.  charAt(int index)-->返回 char指定索引处的值(注意索引从0开始) String str1="abc"; char c=str1.charAt( ...