Mongodb学习笔记(二)

Mongodb学习笔记(二)


关于Unicode字符串的一点说明
你可能已经注意到,之前存入数据库的事常规的Python字符串,这与我们从数据库服务器里取回来的看起来不同(比如 u’Mike’ 而不是‘Mike’)。 下面简单解释一下。

MongoDB 以格式保存数据. BSON 字符串都是 UTF-8编码的, 所以PyMongo必须确保它保存的字符串值包含有效地 UTF-8数据.常规字符串 ( )都是有效的,可以不改变直接保存。Unicode 字符串( )就需要先编码成 UTF-8 格式.例子里的字符串显示为u’Mike’ 而不是 ‘Mike’是因为 PyMongo 会把每个BSON 字符串转换成 Python 的unicode 字符串, 而不是常规的 str.

这个问题困扰了我好多天,其实并不用太担心,因为在python处理过程中它会依然正常处理

Mongodb查询返回值
如果用find({})函数查询,则返回的是一个游标并不是字典,类似于list若要查看其中内容需用for循环遍历

1
2
3
p = StockDB.get_collection('SHistA').find({},{ticker:1,"_id":0})
for doc in p:
...

用find_one({})返回的则是字典

Donate comment here