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 存储的限制非常相似。