在 mongodb 中将字符串作为常规字符串插入

Inserting string as regular string in mongodb

pymongo 文档说 BSON 字符串是 UTF-8 编码的,因此 PyMongo 必须确保它存储的任何字符串只包含有效的 UTF-8 数据。 Unicode 字符串 (<type ‘unicode’>) 首先编码为 UTF-8。我们的示例字符串在 Python shell 中表示为 u'Mike' 而不是 'Mike' 的原因是 PyMongo 将每个 BSON 字符串解码为 Python unicode 字符串,而不是常规 str .

所以我明白要摆脱 Unicode 文字 'u',我将不得不对查询返回的文档调用 json.dumps()

文档还说常规字符串 (<type ‘str’>) 是经过验证和存储不变的。我假设查询结果也将其作为常规字符串而不是 Unicode 字符串返回。

我创建了一个包含常规字符串类型的字典并将其插入到数据库中,当我检索它时,我得到的字符串为 Unicode。关于我该怎么做的任何想法?目的是避免在查询结果上调用 json.dumps()。我需要从数据库中获取大量文档,json.dumps() 花费了相当长的时间。我存储的字符串包含 ASCII 数据,因此我不需要 Unicode 字符串。

常规字符串作为常规字符串返回的假设不正确。它原样存储并且未编码为 UTF-8,因为它已经是 UTF-8。在查询期间解码时,所有内容都转换回 Unicode。

来源: