MongoDB 可以使用 MongoEngine 存储 BSON 文件吗?
MongoDB BSON file storage with MongoEngine possible?
我正在使用 MongoEngine 驱动程序来定义和连接到我的 MongoDB 实例,我现在想使用 BSON 字段来存储文件。当我使用 GridFS 存储我的文件时,我使用了 MongoEngine FileField 这样的:
class UserFile(Document):
filename = StringField()
file_data = FileField()
我现在想将文件存储为 BSON,但我在 MongoEngine list of field types 中找不到任何 "BsonField"。有人知道如何使用 MongoEngine 驱动程序将文件存储为 BSON 吗?欢迎所有提示!
你的意思是:
class UserFile(Document):
filename = StringField()
file_data = BinaryField()
MongoDB 将存储 任何内容 只要整个文档在 16MB 限制以下。它是 MongoDB 等同于 SQL RDBMS 术语中的 "blob"。
对于 mongoengine BinaryField
表示这是一种 "raw" 存储类型。因此,数据不是 "marshall out" 到 GridFS 集合,而是文档中的 "embedded"。同样适用于文档的 16MB 限制,但 MongoDB 对此没有问题。 GridFS 实际上是一种存储超过 16MB 限制的数据的机制。仅此而已,只是将数据拆分为文档 "chunks".
的驱动程序代码
不要期望 "query" 进入 BinaryField 的内容,这与 GridFS 存储的限制非常相似。
我正在使用 MongoEngine 驱动程序来定义和连接到我的 MongoDB 实例,我现在想使用 BSON 字段来存储文件。当我使用 GridFS 存储我的文件时,我使用了 MongoEngine FileField 这样的:
class UserFile(Document):
filename = StringField()
file_data = FileField()
我现在想将文件存储为 BSON,但我在 MongoEngine list of field types 中找不到任何 "BsonField"。有人知道如何使用 MongoEngine 驱动程序将文件存储为 BSON 吗?欢迎所有提示!
你的意思是:
class UserFile(Document):
filename = StringField()
file_data = BinaryField()
MongoDB 将存储 任何内容 只要整个文档在 16MB 限制以下。它是 MongoDB 等同于 SQL RDBMS 术语中的 "blob"。
对于 mongoengine BinaryField
表示这是一种 "raw" 存储类型。因此,数据不是 "marshall out" 到 GridFS 集合,而是文档中的 "embedded"。同样适用于文档的 16MB 限制,但 MongoDB 对此没有问题。 GridFS 实际上是一种存储超过 16MB 限制的数据的机制。仅此而已,只是将数据拆分为文档 "chunks".
不要期望 "query" 进入 BinaryField 的内容,这与 GridFS 存储的限制非常相似。