在 MongoDB 中存储图像
你可以使用数据库将图片和其他微小图像存储在数据库表中。这样的图片文件可以在文件服务器上更有效地处理。
但是,当图像数据存储在二进制字段中时,只有将原始图片数据流式传输到该字段和从该字段流出的应用程序才能访问它。
MongoDB GridFS 规范是在 MongoDB 中存储相当大的文件的可行选择。它确保文件被分解为可管理的位并保存在数据库中。
本文解释了在 MongoDB 中保存和检索二进制文件的过程。
MongoDB 中的 GridFS
GridFS 是用于存储和检索比 BSON 设置的 16 MB 限制更大的文件的标准。GridFS 将文件拆分为部分或块,并将每个部分分开,而不是将其存储为单个文档。
在 Couchbase 中为每个项目存储一个元数据 JSON 文档,以及最多一个小缩略图。
该文档包含有关应用程序中该对象的信息,你需要这些信息并参考专门构建的对象存储,例如 S3、文件系统或 HDFS。因此,你将拥有两全其美。
在这个 MongoDB 教程中,详细讨论了在 MongoDB 数据库中存储图像的问题。此外,你还将了解保存图像和有效地从 MongoDB 数据库中检索图像的不同方法。
在 MongoDB 中使用 GridFS 存储图像
你可以通过使用 Mongoose 创建模式将图像存储在 MongoDB 数据库中。模式是通过创建文件 model.js
来定义的。
数据类型 Buffer
用于以数组的数据库形式存储图像。
图像的存储方式有以下三种:
由于最终用户难以访问大文件,因此将二进制文件存储在数据库中可以更轻松地在众多站点之间分发。值得注意的是,在将照片保存到数据库之前,你应该考虑其好处。
在 MongoDB 中使用 Python 存储图像
本节将讨论如何通过 Python 在 MongoDB 中存储图像。
你可以为此使用两个库:
pip3 install pymongo
你现在可以在安装该库后使用它。但是,首先,导入库,连接到服务器以在 Python 中使用 MongoDB,并建立一个数据库来存储照片。
from pymongo import MongoClient
connection = MongoClient("localhost", 27017)
database = connection['DB_NAME']
MongoDB 默认在端口 27017 上运行。你可以在 DB_NAME
中为数据库指定任何名称。
GridFS 库在以下阶段将照片存储在 MongoDB 数据库中。
import gridfs
#Create an object of GridFs for the above database.
fs = gridfs.GridFS(database)
#Define an image object with the location.
file = "C:/Users/user/Pictures/dog.jpeg"
with open(file, 'rb') as f:
contents = f.read()
fs.put(contents, filename="file")
上述代码展示了如何使用 Python 将照片保存在 MongoDB 数据库中。
输出:
相关文章
比较 MongoDB 中的字段
发布时间:2023/04/21 浏览次数:51 分类:MongoDB
-
在本文中,我们将了解如何比较 MongoDB 中的两个字段。 此外,我们将看到一个相关的示例和解释,以使主题更容易理解。
清除或删除 MongoDB 中的集合
发布时间:2023/04/21 浏览次数:147 分类:MongoDB
-
本篇文章将告诉大家如何删除 MongoDB 数据库中的集合以及删除 MongoDB 中的集合的不同方法。
向 MongoDB 集合中的每个文档添加新字段
发布时间:2023/04/21 浏览次数:107 分类:MongoDB
-
您将在这篇文章中了解 $set 和 $setOnInsert 操作。 此外,利用这两个运算符,快速描述了向 MongoDB 中的集合添加字段的挑战。
MongoDB 截断集合
发布时间:2023/04/21 浏览次数:178 分类:MongoDB
-
可以根据需要选择两个选项之一来截断下面的集合。 在今天的文章中,我们将学习如何在 MongoDB 中截断集合。
删除 MongoDB 中的重复项
发布时间:2023/04/21 浏览次数:151 分类:MongoDB
-
在本文中,我们将了解如何删除 MongoDB 中的重复条目,并且我们还将看到一个带有适当解释的示例,以使主题更容易理解。
使用 NodeJS 检查 MongoDB 中是否存在集合
发布时间:2023/04/21 浏览次数:194 分类:MongoDB
-
在本文中,我们将检查 MongoDB 数据库中是否存在一个集合,并且我们还将查看与主题相关的示例,以使主题更容易理解。 为此,我们将使用 Node.js。
MongoDB 中的唯一索引
发布时间:2023/04/21 浏览次数:144 分类:MongoDB
-
在这篇教学文章中,您将了解唯一索引、它们是什么以及如何在 MongoDB 中使索引唯一。 此外,还简要详细地解释了使用户的电子邮件在 MongoDB 中唯一。
在 MongoDB 中创建索引
发布时间:2023/04/21 浏览次数:104 分类:MongoDB
-
索引有助于有效解决查询。 如果没有索引,MongoDB 必须遍历集合中的每个文档才能找到与查询匹配的文档。因此,在今天的文章中,我们将学习如何在 MongoDB 中创建索引。
MongoDB 中的稀疏索引
发布时间:2023/04/21 浏览次数:142 分类:MongoDB
-
在本文中,我们将讨论 MongoDB 中的稀疏索引。 此外,我们将提供一个相关示例并进行解释,以使该主题更容易理解。