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

原文地址:https://www.cnblogs.com/felixqiang/p/11221507.html

时间: 2024-11-09 13:00:27

MongoDB与Python的交互的相关文章

MongoDB与python交互

1.Pymongo PyMongo是Mongodb的Python接口开发包,是使用python和Mongodb的推荐方式.官方文档 2.安装 进入虚拟环境 sudo pip install pymongo 或源码安装 python setup.py 3.使用 导入模块 import pymongo #或者 from pymongo import MongoClient 建立于MongoClient 的连接: client = MongoClient('localhost', 27017) # 或

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

1. 数据库简介: 当前主要使用两种类型的数据库:关系型数据库(RDBMS).非关系型数据库(NoSQL); (1). 关系型数据库RDBMS: 是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据; 关系型数据库的主要产品: oracle:在以前的大型项目中使用,银行,电信等项目 mysql:web时代使用最广泛的关系型数据库 sqlite:轻量级数据库,主要应用在移动平台 (2). 非关系型数据库(NoSQL):  not only SQL , 泛指非关系型的数

第一节、Alex 讲解 python+mysql 交互;

Python Mysql 交互 A.Alex 的语法展示: import MySQLdb  try: conn=MySQL.connect(host='localhost',user='root',passwod='123qwe',db='test-DB',port='3306') cur =conn.cursor() cur.execute('select * from user_info') cur.close() conn.close() except MySQLdb.Errot,e: p

第十一节:python mysql交互、socket、多线程

python个人笔记,纯属方便查询. ------------------------------------python mysql交互---------------------------------------  #查询: import MySQLdb try:         conn=MySQLdb.connect(host='10.86.10.21',user='root',passwd='mysql',db='python',port=3306)         cur=conn.

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

1,下载mongodb的python驱动,http://pypi.python.org/pypi/pymongo/,根据操作系统和python平台版本选择相应的egg或exe安装. 2,新建一个py脚本(可以在eclipse下安装pydev插件,很方便) #coding=utf-8 import pymongo connection = pymongo.Connection("192.168.0.101", 27017) db = connection.python print db.

mongodb和python的datetime的差异

python中需要使用utc时间 mongo.exe命令 db.sms_ttl.ensureIndex({"createdAt": 1}, {expireAfterSeconds: 600}) pymongo操作 db.sms_ttl.insert({"createdAt": datetime.utcnow(), "type": "sms-auth", "phone":"", "

Python学习之路3——Python用户交互及逻辑控制

1.Python用户交互 程序难免会与用户产生交互. 举个例子,你会希望获取用户的输入内容,并向用户打印出一些返回的结果.我们可以分别通过 input() 函数与 print 函数来实现这一需求. 1 #!/user/bin/env ptyhon 2 # -*- coding:utf-8 -*- 3 # Author: VisonWong 4 5 name = input("name:") 6 age = int(input("age:")) 7 job = inp

sys模块-python解释器交互

sys模块是与python解释器交互的一个接口 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1) sys.version 获取Python解释程序的版本信息 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 import sys try: sys.exit(1) except SystemExit as e:

mongodb——python的交互

mongodb-python的交互:#安装pymongo:pip install pymongoimport pymongo 1.链接mongod的服务 2.库和表的名字:有数据会自动建库建表 3.插入数据 import pymongo try: #1.链接mongod的服务 mongo_py=pymongo.MongoClient(username='A',password='123456') #2.库和表的名字:有数据会自动建库建表 db=mongo_py['four'] collectio