驱动模块

  • pymongo是python里常用的操作MongoDB的驱动模块
  • 可用pip下载安装
  1. pip install pymongo

创建连接

  • MongoClient是MongoDB的客户端代理对象,可以用来执行增删改查操作,而且还内置了连接池
  1. from pymongo import MongoClient
  2. client = MongoClient(host="localhost",port=27017)
  3. client.admin.authenticate("admin","123456")

数据写入

  • insert_one和insert_many两个函数可向MongoDB写入数据
  1. client.school.student.insert_one({"name":"alex"})
  1. client.school.student.insert_many({"name":"bob"},{"name":"cindy"})

数据查询

  • find_one和find两个函数可从MmongDB中查询数据
  1. student = client.school.student.find_one({"name":"alex"})
  2. print(student)
  1. students = client.school.student.find({})
  2. for one in students:
  3. print(one["_id"],one["name"])
  • skip:用于数据分类查询
  • limit:用于数据分页查询
  1. students = client.school.student.find({}).skip(0).limit(10)
  • count_documents:查询记录总数
  1. count = client.school.student.count_documents({})
  • distinct:查询不重复的字段
  1. students = client.school.student.distinct("name")
  • sort:对查询结果进行排序
  1. students = client.school.student.find().sort([("name",-1)])

数据修改

  • update_one和update_many两个函数可以修改MongoDB数据
  1. client.school.student.update_one({"name":"alex"},{"$set":{"sex":"女"}})
  1. client.school.student.update_many({},{"$set":{"grade":"七年级"}})

数据删除

  • delete_one和delete_many两个函数可以删除MongoDB数据
  1. client.school.student.delete_one({"name":"alex"})
  1. client.school.student.delete_many({})

存储文件

连接GridFS

  • GridFS是MongoDB的文件存储方案,主要用于存储超过16M的文件
  1. from gridfs import GridFS
  2. db = client.school
  3. gfs = GridFS(db,collection="book")

保存文件

  • put函数可把文件保存到GridFS中
  1. file = open("D:/Python编程:从入门到实践.pdf","rb")
  2. args = {"type":"PDF","keyword":"Python"}
  3. gfs.put(file,file="Python编程:从入门到实践.PDF",**args)
  4. file.close()

查找文件

  • find_one和find函数可以查找GridFS中存储的文件
  1. book = gfs.find_one({"filename":"Python编程:从入门到实践.PDF"})
  2. print(book.keywode)
  1. books = gfs.find({"type":"PDF"})
  2. for one in books:
  3. print(one.filename

判断是否存储了文件

  • exists可判断GridFS是否存储了某个文件
  1. rs = gfs.exists({"filename":"Python编程:从入门到实践.PDF"})
  2. print(rs)

读取文件

  • get函数可以从GfridFS中读取文件,并且只能通过主键读取
  1. from bson.objectid import ObjectId
  2. book = gfs.find_one({"filename":"Python编程:从入门到实践.PDF"})
  3. id = book._id
  4. document = gfs.get(ObjectId(id))
  5. file = open("D:/Python从入门到实践.PDF","wb")
  6. file.write(document.read())
  7. file.close()

删除文件

  • delect函数可以从GridFS中删除文件,同样只能通过主键删除(先查找到文件的主键)
  1. from bson.objectid import ObjectId
  2. book = gfs.find_one({"filename":"Python编程:从入门到实践.PDF"})
  3. id = book._id
  4. 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. Kubernetes 基于 RBAC 的授权(十六)

    目录 一.RBAC介绍 1.1.角色和集群角色 1.2.RoleBinding 和 ClusterRoleBinding 1.3.资源 1.4.主体 二.命令行工具 2.1.kubectl creat ...

  2. sourcetree在mac上的使用

    sourcetree是git在Mac上管理代码的ui工具,当然你也可以使用命令直接使用git来管理代码,sourcetree下载下载地址:https://www.sourcetreeapp.com. ...

  3. javascript获取地址栏参数的方法

    javascript获取地址栏参数的方法<pre>function GetQueryString(name){ var reg = new RegExp("(^|&)&q ...

  4. 【剑指offer】面试题 18. 删除链表的节点

    面试题 18. 删除链表的节点

  5. 17 JQuery高级----学习笔记

    1. 动画(1) 三种方式显示和隐藏元素 <1> 默认显示和隐藏方式 1. show([speed,[easing],[fn]]) 1. 参数: 1. speed:动画的速度.三个预定义的 ...

  6. Java开发笔记(一百三十六)JavaFX的窗格

    虽然Java自诞生之初就推出了AWT,紧接着第二版又推出升级后的Swing,打算在桌面开发这块大展拳脚:可是后来Java在服务器开发上大放异彩,在桌面开发上反而停滞不前,可谓失之J2SE收之J2EE. ...

  7. 如何申请百度地图用户Key

    打开网页http://lbsyun.baidu.com/,进入百度地图开发平台. 单击[登录],登录百度账号.如果您还没有百度账号,单击箭头处[立即注册]注册百度账号. 登录完成后,单击右上角箭头处[ ...

  8. python 之 网络编程(基于TCP协议的套接字通信操作)

    第八章网络编程 8.1 基于TCP协议的套接字通信 服务端套接字函数 s.bind() 绑定(主机,端口号)到套接字 s.listen() 开始TCP监听 s.accept() 被动接受TCP客户的连 ...

  9. Python--代码1(接口测试:测试用例从数据库读取写到yaml文件中)

    一. 从数据库中读取全部接口,并写入yaml文件 数据库中的数据存储格式如下图: import pymysql import os import json # from ruamel import y ...

  10. P-R曲线深入理解

    P-R曲线就是精确率precision vs 召回率recall 曲线,以recall作为横坐标轴,precision作为纵坐标轴.首先解释一下精确率和召回率. 解释精确率和召回率之前,先来看下混淆矩 ...