Python操作mongo--GridFS

article/2025/10/14 14:01:25

业务场景:

        通过python查询mongo数据库中所存储的图片

条件:

        查询上传日期大于等于2022-03-04的图片并保存到本地

度娘了好多文章,发现除了疯狂的套娃有用的信息很少,于是有了此文章,,理解不了的可以结合截图场景很简单但是尝试的过程很操蛋,希望大家避免被套娃。初学者,若有不足请指正,欢迎点赞留言交流!

上代码!!!

import gridfs
import pymongo
import time
import datetimefrom gridfs import *class DBConn(object):'''127.0.0.1  -> 你的monogo的服务器地址27017      -> 你的monogo的端口root       -> 你的monogo的用户名password   -> 你的monogo的密码'''server = 'mongodb://root:password@127.0.0.1:27017'def connect(self):#创建mongo连接self.conn = pymongo.MongoClient(self.server)def close(self):# 关闭mongo连接return self.conn.disconnect()def getConn(self):# 获取mongo连接return self.connclass OperateGridFS(object):'''操作mongo的GridFS桶根据时间查询图片数据,并存储到本地'''def __init__(self, inputDate):#要过滤的时间范围self.inuptDate = inputDatedef findGridByQuery(self):#获取数据库连接dbconn = DBConn()dbconn.connect()#获取你要操作的库,这里的image 就是你看到的相当于mysql有一个image库 要结合截图理解db = dbconn.getConn().image#获取你要操作的表,就是你看到的相当于mysql存在一个image库中,库中又有一张fs表 要结合截图理解fs = gridfs.GridFS(db, collection='fs')for grif_out in fs.find({"uploadDate": {"$gte": datetime.datetime.strptime(self.inuptDate, '%Y-%m-%d')}}):filename = grif_out.filenamedata = grif_out.read()#存储图片的位置outf = open(r'C:\Users\86185\Desktop\image\{}'.format(self.path, filename), 'wb')outf.write(data)outf.close()
#方法二 速度较慢不建议def gridFsTest(self):dbconn = DBConn()dbconn.connect()db = dbconn.getConn().imagefs = gridfs.GridFS(db, collection='fs')mg2 = fs.find()for grid_out in fs.find():filename = grid_out.filenameupload_date = grid_out.upload_dateupload_date = time.strptime(str(upload_date).split(" ")[0], '%Y-%m-%d')compare_date = time.strptime(self.inuptDate, '%Y-%m-%d')if upload_date >= compare_date:data = grid_out.read()outf = open(r'C:\Users\86185\Desktop\image\{}'.format(self.path, filename), 'wb')outf.write(data)outf.close()if __name__ == '__main__':demo = OperateGridFS('2022-03-04')demo.findGridByQuery()

 


http://chatgpt.dhexx.cn/article/As5bS55T.shtml

相关文章

Mongodb操作GridFS案例

文章目录 准备环境Navicat中查看GridFS存储桶登录连接查看 准备环境 开启服务 mongod -f /opt/servers/mongodb_demo/mongodb/conf/mongod.conf 关闭防火墙 systemctl stop firewalld.service 查看防火墙的状态 systemctl status firewalld.service 进入mongo shell mongo …

MongoDB中的GridFs是什么

本文来介绍下MongoDB的GridFsTemplate如何使用 文章目录 什么是GridFS为什么要使用GridFSGridFS的两个集合本文小结 什么是GridFS GridFS是一种将大型文件存储在MongoDB的文件规范。所有官方支持的驱动均实现了GridFS规范。GridFS是MongoDB中的一个内置功能,可以用…

GridFS文件存储

GridFS文件存储 使用命令行操作GridFS 提前创建好文件 1.上传文件 现在我们使用 GridFS 的 put 命令来存储 GridFS存储.ppt文件。 调用 MongoDB 安装目录下bin的mongofiles.exe工具。 打开命令提示符,进入到MongoDB的安装目录的bin目录中,找到mongof…

GridFs的初步了解

前言 刚刚接触到了MongoDB的分布式文件存储系统GridFs,以前没了解过,这里记录一下它的简单使用。 1、GridFs介绍 GridFS是一种将大型文件存储在MongoDB的文件规范。所有官方支持的驱动均实现了GridFS规范。 GridFS 用于存储和恢复那些超过16M&#x…

2023 mongodb GridFS整合SpringBoot

接了个,为了节约成本以及提高开发效率,文件存储和数据存储都用的是mongodb,网上找了一大堆gridfs的案例,发现都不好用,嗯,,,自己动手写吧,仅供参考。 核心pom配置 ser…

GridFS文件操作

1. GridFS介绍 GridFS是MongoDB提供的用于持久化存储文件的模块,CMS使用MongoDB存储数据,使用GridFS可以快速集成 开发。 它的工作原理是: 在GridFS存储文件是将文件分块存储,文件会按照256KB的大小分割成多个块进行存储&#xf…

MongoDB GridFS

GridFS简介 GridFS是Mongo的一个子模块,使用GridFS可以基于MongoDB来持久存储文件。并且支持分布式应用(文件分布存储和读取)。作为MongoDB中二进制数据存储在数据库中的解决方案,通常用来处理大文件,对于MongoDB的BSON格式的数据(文档)存储有尺寸限制&a…

GridFS详细分析

GridFS简介 GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。 http://www.mongodb.org/display/DOCS/GridFS http://www.mongodb.org/display/DOCS/GridFSSpecification GridFS使用 MongoDB提供了一个命令行工具mongofiles可以来处理GridFS&#xff…

13.MongoDB之Gridfs

参照官网如下(如下链接依次递进): https://docs.mongodb.com/manual/core/gridfs/ https://docs.mongodb.com/database-tools/mongofiles/#mongodb-binary-bin.mongofiles https://docs.mongodb.com/database-tools/installation/installation/ FS:即文…

MongoDB(四)——GridFS

GridFS MongoDB的一个重要子模块,可基于MongoDB来持久存储文件,并且支持分布式存储和读取。 持久存储:对应瞬时数据如内存,指保存到数据库中,能持久保存。 分布式存储:将数据分散地存储于多个位置。 存在的…

在Keil MDK中无法使用gmtime函数进行时间戳转换

硬件平台STM32&#xff0c;软件平台Keil MDK 5.18 由于项目中需要用到UNIX时间戳和日历的来回转换&#xff0c;于是想到C库函数<time.h>里面有现成的函数可以使用。 于直接使用mktime和gmtime两个函数进行时间戳转换&#xff0c;前者把日历转为时间戳&#xff0c;后者把…

C++中获取日期函数gmtime和localtime区别

函数gmtime和localtime的声明如下&#xff1a; struct tm * gmtime (const time_t * timer); struct tm * localtime (const time_t * timer); 它们均接收一个time_t的const指针类型&#xff0c;time_t类型通常是一个大整数值&#xff0c;该整数值表示自UTC时间1970年1月1日0…

C语言学习笔记---时间函数ctime()和gmtime()

函数原型如下&#xff1a; __CRT_INLINE char *__cdecl ctime(const time_t *_Time);__CRT_INLINE struct tm *__cdecl gmtime(const time_t *_Time);ctime函数 ctime函数可以将当前时间值转换为字符串格式返回。返回的字符串格式为&#xff1a;Www Mmm dd hh:mm:ss yyyy 其中&…

Linux系统编程一:时间和延时、gmtime和localtime函数返回相同

目录 1. 概述2. 延时函数3. 当前时间3.1 时间调用函数3.2 时间转换函数 4. gmtime和localtime函数返回相同测试代码 1. 概述 前面的几篇文章Linux学习笔记一到七&#xff0c;主要是开发环境的搭建&#xff0c;都是一些准备工作。从本篇文章开始&#xff0c;将学习Linux系统编程…

逆向 time.h 函数库 time、gmtime 函数

0x01 time 函数 函数原型&#xff1a;time_t time(time_t *t)函数功能&#xff1a;返回自纪元 Epoch(1970-01-01 00:00:00 UTC)起经过的时间&#xff0c;以秒为单位。如果 seconds 不为空&#xff0c;则返回值也存储在变量 seconds 中C\C 实现&#xff1a; #include <stdio.…

python gmtime_在Python中操作日期和时间之gmtime()方法的使用

在Python中操作日期和时间之gmtime()方法的使用 这篇文章主要介绍了在Python中操作日期和时间之gmtime()方法的使用,是Python入门学习中的基础知识,需要的朋友可以参考下 gmtime()方法转换历元到一struct_time以UTC其中dst的标志值始终为0以秒表示时间。如果不设置秒时或None&a…

gmtime与localtime的区别

目录 gmtime函数 linux环境下&#xff1a; window环境下 localtime函数 gmtime函数 gmtime转换的时间是UTL时间&#xff0c;与北京时间相差了8个小时 如果你想要得到北京时间&#xff0c;不建议你将gmtime转换后的时间直接加上八个小时 linux环境下&#xff1a; 执行结…

【C库函数】strerror函数详解

目录 strerror 函数原型 参数详解 返回值详解 函数讲解 strerror 返回错误码&#xff0c;所对应的错误信息 函数原型 char *strerror( int errnum ); 参数详解 参数errnum解析错误码信息(errno) 返回值详解 strerror函数就是返回这些错误码所对应错误信息的字符串起始地…

详解:strerror函数:将错误码转化为错误信息

对于大家在浏览网页的时候&#xff0c;或多或少的会见识过不少的错误信息&#xff1a;比如&#xff1a;最常见的就是&#xff1a;404 但是&#xff0c;使用strerror函数&#xff0c;可以将错误码转化为错误信息&#xff01;不知道偶然间看见的读者是否有兴趣进行深入研究一下&…

Strerror函数和Perror函数的介绍及使用

Strerror 通过标准错误的标号&#xff0c;获得错误的描述字符串 &#xff0c;将单纯的错误标号转为字符串描述&#xff0c;方便用户查找错误。 需要引用的头文件 #include <errno.h> #include <string.h> 用法&#xff1a;如果调用函数失败&#xff0c;会产生错误码…