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

时间:2015-02-25 05:23:56

标签: pymongo

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

所以我理解为了摆脱Unicode文字&#39; u&#39;,我将不得不在查询返回的文档上调用json.dumps()

文档还说明了常规字符串(<type ‘str’>)的验证和存储未经更改。我假设查询结果也将它作为常规字符串而不是Unicode字符串抛出。

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

1 个答案:

答案 0 :(得分:2)

假定常规字符串作为常规字符串返回是不正确的。它保存不变,不编码为UTF-8,因为它已经是UTF-8。在查询期间进行解码时,所有内容都将转换回Unicode。

来源: