python可以通过pymongo对mongodb进行相关操作,但是有一个点需要注意:mongodb存储的数据是bson格式,bson要求的数据必须是有效的utf8类型。我们在把数据保存到mongodb前,需求确保数据中都是有效的utf8字符,否则插入会出错。而从mongodb读取出数据后,按照utf8的格式进行处理。但是通过pymongo读取出数据后打印,发现数据类型都是Unicode。这是因为pymongo会把从mongodb读取出来的数据解码成Unicode,所以当数据读取出来后,先按照Unicode的方式处理,将数据编码成utf8比较安全。虽然pymongo有这么一层处理,但是我们把数据变成utf8存储到mongodb,虽然也经过pymongo,存储到数据库里的数据仍然是utf8,pymongo只是在读取出来的时候做了这么一个转换处理。
下面是pymongo官方文档的解释: