文章目录

  • mongoDB增删改查
  • pymongoDB模块向MongoDB中保存文件
  • 查询文件

mongoDB增删改查

# -*- encoding: utf-8 -*-
"""
@File    : demo_1.py
@Time    : 2021-09-06 15:12
@Author  : XD
@Email   : gudianpai@qq.com
@Software: PyCharm
"""
#创建连接
#mongoClient是mongoDB的客户端代理对象,可以用来执行增删盖茶的操作
#创建管理员账号:myUserAdmin 密码:abc123
from pymongo import MongoClient
try:client = MongoClient(host = "localhost", port = 27017)client.admin.authenticate("myUserAdmin","abc123")#数据写入client.school.teacher.insert_one({"name":"李璐"})client.school.teacher.insert_many([{"name":"李璐"},{"name":"陈刚"}])#数据查询teacher = client.school.teacher.find({})for one in teacher:print(one["_id"], one["name"])print("-"*50)teacher = client.school.teacher.find_one({"name":"李璐"})print(teacher["_id"], teacher["name"])
except Exception as e:print(e)
6135c961a775025ae4e741a8 李璐
6135c998a7750221283b703b 李璐
6135c998a7750221283b703c 李璐
6135c998a7750221283b703d 陈刚
6135c9efa775020e4898565e 李璐
6135c9efa775020e4898565f 李璐
6135c9efa775020e48985660 陈刚
6135ca00a7750237bc55221b 李璐
6135ca00a7750237bc55221c 李璐
6135ca00a7750237bc55221d 陈刚
6135ca43a7750235381ac77e 李璐
6135ca43a7750235381ac77f 李璐
6135ca43a7750235381ac780 陈刚
6135ca52a775023014df0554 李璐
6135ca52a775023014df0555 李璐
6135ca52a775023014df0556 陈刚
6135cd51a775024f806fff40 李璐
6135cd51a775024f806fff41 李璐
6135cd51a775024f806fff42 陈刚
6135cd70a7750220447fdfcb 李璐
6135cd70a7750220447fdfcc 李璐
6135cd70a7750220447fdfcd 陈刚
6135cd7fa775024dc80000d8 李璐
6135cd7fa775024dc80000d9 李璐
6135cd7fa775024dc80000da 陈刚
613612c5a775022f8cf757d1 李璐
613612c5a775022f8cf757d2 李璐
613612c5a775022f8cf757d3 陈刚
--------------------------------------------------
6135c961a775025ae4e741a8 李璐
#数据修改
from pymongo import MongoClient
try:client = MongoClient(host="localhost", port=27017)client.admin.authenticate("myUserAdmin", "abc123")client.school.teacher.update_many({},{"$set":{"role":["班主任"]}})client.school.teacher.update_one({"name":"李璐"},{"$set":{"sex":"女"}})client.school.teacher.update_one({"name":"李璐"}, {"$push": {"role": "年级主任"}})
except Exception as e:print(e)

数据删除

#数据删除
from mongo_db import client
try:client.school.teacher.delete_one({"name":"李璐"})client.school.teacher.delete_many({})
except Exception as e:print(e)

分页,排序。

from mongo_db import clientstudent = client.school.teacher.find({}).skip(0).limit(10)
for one in student:print(one["_id"], one["name"])names = client.school.teacher.distinct("name")
for one in names:print(one)teachers = client.school.teacher.find({}).sort([("name", -1)])
for one in teachers:print(one["_id"], one["name"])

pymongoDB模块向MongoDB中保存文件

# -*- encoding: utf-8 -*-
"""
@File    : demo_5.py
@Time    : 2021-09-07 14:50
@Author  : XD
@Email   : gudianpai@qq.com
@Software: PyCharm
"""
from mongo_db import client
from gridfs import GridFSdb = client.school
gfs = GridFS(db, collection = "book")
file = open("./Attention-based_Saliency_Hashing_for_Ophthalmic_Im.pdf", "rb")
args = {"type":"PDF", "keyword":"hash"}
gfs.put(file, filename = "Attention-based_Saliency_Hashing_for_Ophthalmic_Im.pdf", **args)
file.close()









查询文件

from mongo_db import client
from gridfs import GridFS
import math
import datetime
db = client.school
gfs = GridFS(db, collection = "book")
book = gfs.find_one({"filename":"Attention-based_Saliency_Hashing_for_Ophthalmic_Im.pdf"})
print(book.filename)
print(book.type)
print(book.keyword)
print("{}".format(math.ceil(book.length/1024/1024)))
print("-"*100)
books = gfs.find({"type":"PDF"})
for one in books:uploadDate = one.uploadDate + datetime.timedelta(hours = 8)uploadDate = uploadDate.strftime("%Y-%m-%d %H:%M:%S")print(one._id, one.filename, one.type, uploadDate)
print("-"*100)
from bson.objectid import ObjectId
rs = gfs.exists(ObjectId("61371755a775026d74e76855"))
print(rs)
rs = gfs.exists(**{"type":"PDF"})
print(rs)
Attention-based_Saliency_Hashing_for_Ophthalmic_Im.pdf
PDF
hash
3
----------------------------------------------------------------------------------------------------
61371755a775026d74e76855 Attention-based_Saliency_Hashing_for_Ophthalmic_Im.pdf PDF 2021-09-07 15:40:05
----------------------------------------------------------------------------------------------------
True
True





读取文件

from mongo_db import client
from gridfs import GridFS
from bson.objectid import ObjectIddb = client.school
gfs = GridFS(db, collection = "book")
document = gfs.get(ObjectId("61371755a775026d74e76855"))
file = open("./hash.pdf", "wb")
file.write(document.read())
file.close()

删除文件

from mongo_db import client
from gridfs import GridFS
from bson.objectid import ObjectIddb = client.school
gfs = GridFS(db, collection = "book")
gfs.delete(ObjectId("61376d23a775025ce8d0ec3a"))

004python与mongoDB交互相关推荐

  1. 【flask学习笔记】flask与HTTP,flask与mongodb交互,用手机输入局域网ip访问flask界面

    文章目录 引入(关于http) flask项目的配置 引入(关于http) 当我们在浏览器中的地址栏中输入这个URL,然后按下Enter时,稍等片刻,浏览器会显示一个问候页面.这背后有一个程序运行着. ...

  2. MongoDB学习笔记(入门)

    MongoDB学习笔记(入门) 一.文档的注意事项: 1.  键值对是有序的,如:{ "name" : "stephen", "genda" ...

  3. 在Ubuntu 14.04 64bit上安装MongoDB并测试

    临时需要使用python来操作mongoDB, 网上搜索发现很多文档都已经非常陈旧了, 并不符合目前3.0版本的安装配置, 特此自己整理一下, 以作备忘. MongoDB简介 MongoDB(http ...

  4. 【Mongodb】MongoDB

    文章目录 一 Mongodb介绍及用途 二 安装说明 三 如何高效使用mongoDB 1.库操作 2.集合操作-CRUD(增删改查) 四 python连接MongoDB [博客地址]: https:/ ...

  5. java执行mongodb语句_java下执行mongodb

    1.1连单台mongodb Mongo mg = newMongo();//默认连本机127.0.0.1  端口为27017 Mongo mg = newMongo(ip);//可以指定ip 端口默认 ...

  6. 用MongoDB实现MapReduce

    来源:http://blog.csdn.net/star_zongke/article/details/7475455 MapReduce 是 Google 在 2004 年发布的一个软件框架,用于支 ...

  7. python mongodb分页查询_python数据库分页查询语句

    用django将数据从数据库提出并分页展示 不要笑这个太简单噢~~大神们路过的请自动忽略本文-- '''django有自带的分页功能,我这个是自己做的分页,效果其实是一样的. ''' 要把数据提出并展 ...

  8. golang mongodb驱动mgo异常崩溃问题

    原文链接:石匠的Blog 背景 在我的后端游戏架构中,有一个golang开发的数据服务器dataserver,用来存储落地玩家的历史数据,并提供给客户端http接口查询.由于之前的项目已经在使用mon ...

  9. 文档型非关系数据库MongoDB经验总结

    文档型非关系数据库MongoDB 数据库基础概念 数据:能够输入到计算机中并被识别处理的信息集合 数据结构:研究一个数据集合中,数据元素关系 数据库:按照数据结构,存储管理数据的仓库.数据仓库是在数据 ...

最新文章

  1. 算法-------三角形最小路径和(Java版本)
  2. java中sql之count,SQL COUNT() 函数--编程学习网
  3. 练习(黄冈中学布局)
  4. winform窗体MaximizeBox
  5. Flutter学习 — 处理点击
  6. 【SpringBoot_ANNOTATIONS】自动装配 04 Aware 注入Spring底层组件 原理
  7. 天堂2单机版服务器时间修改,如何制作最新L2J天堂2单机版源码服务端教程.doc
  8. 解决Win10强制更新的工具:show or hide updates
  9. 如何建设网站步骤有哪些?
  10. 创建第一个mybatis程序 遇到的问题
  11. 满格信号服务器开小差,明明信号满格,网络却很慢?教你三招解决!
  12. 小米手机如何在便签待办事项中输入语音?
  13. 导出DNS服务器上的记录
  14. VMware环境部署vFW虚拟防火墙
  15. python“反反爬虫”
  16. Photoshop(P图)实用技巧介绍
  17. 使用MindStudio的HPO界面工具进行调优
  18. Nginx 根据手机电脑进行不同跳转
  19. 单细胞测序两组差异分析—seurat包
  20. 五星物语的科学理论(转)

热门文章

  1. Flex布局演示01
  2. 2017.6.4 problem b 失败总结
  3. 【英语学习】【Level 07】U03 Amazing wonders L6 My homeland, my pride
  4. textaligncenter仍然不居中_三星Galaxy S21/S21+保护膜曝光:居中挖孔 回归直屏_手机行情...
  5. MFC模态与非模态对话框的创建与销毁
  6. python将excel导入oracle,使用Python将Excel文件导入到Oracle数据库里
  7. mysql scrapy 重复数据_小心避坑:MySQL分页时使用 limit+order by 会出现数据重复问题...
  8. 服务器监控工具_8款服务器和应用性能监控工具
  9. 桌面计算机安全策略,设置组策略实现Windows桌面显示计算机信息
  10. OpenGL显示列表