Python 是否可以使用MongoEngine进行MongoDB BSON文件存储?

Python 是否可以使用MongoEngine进行MongoDB BSON文件存储?,python,mongodb,mongodb-query,mongoengine,Python,Mongodb,Mongodb Query,Mongoengine,我正在使用MongoEngine驱动程序定义并连接到我的MongoDB实例,现在我想使用BSON字段来存储文件。当我使用GridFS存储文件时,我使用了如下的MongoEngine: class UserFile(Document): filename = StringField() file_data = FileField() 我现在想将文件存储为BSON,但在中找不到任何“BsonField”。有人知道我如何使用MongoEngine驱动程序将文件存储为BSON吗?欢迎所

我正在使用MongoEngine驱动程序定义并连接到我的MongoDB实例,现在我想使用BSON字段来存储文件。当我使用GridFS存储文件时,我使用了如下的MongoEngine:

class UserFile(Document):
    filename = StringField()
    file_data = FileField()
我现在想将文件存储为BSON,但在中找不到任何“BsonField”。有人知道我如何使用MongoEngine驱动程序将文件存储为BSON吗?欢迎所有提示

你的意思是:

class UserFile(Document):
    filename = StringField()
    file_data = BinaryField()
只要整个文档低于16MB限制,MongoDB将存储任何内容。它是MongoDB,相当于SQL RDBMS术语中的“blob”

对于mongoengine,这表示为那种“原始”存储类型。因此,数据不是“马歇尔出”到GridFS集合,而是“嵌入”到文档中。同样的16MB限制也适用于文档,但MongoDB对此没有问题。GridFS实际上是一种存储超过16MB限制的数据的机制。除此之外,只需驱动程序代码即可将数据拆分为文档“块”


不要期望“查询”到BinaryField的内容,这与GridFS存储的限制非常相似。

不知道您在说什么。请用通俗易懂的语言表达你的问题,因为你所使用的方法不适合任何有效的解决方案。@NeilLunn-Hmmm,那么我一定是错误地理解了BSON。问题是,我目前使用GridFS字段在MongDB中存储文件。但由于我将永远不会有大于16MB的文档,我不想再使用GridFS(因为它将文件分为块,我不希望这样)。在这种情况下,可能正确的问题是:你能举个例子说明我如何在不使用GridFS的情况下在MongoDB中存储文件吗?嗯,所有MongoDB存储都是BSON。因此,如果您的内容在整个文档中小于16MB,则只需将该值存储在“字段/属性”中即可。人们称之为“BLOB”。MongoDB不在乎。数据就是数据。