Pymongo处理ObjectId问题

2015-04-12

之前我们使用MySQL等关系型数据库时,主键都是设置成自增的。但在分布式环境下,这种方法会产生冲突。为此,MongoDB采用了一个称之为ObjectId的类型来做主键。ObjectId是一个12字节的BSON类型字符串。它的构成暂过不表,在处理公司数据库原始数据的时候需要根据ObjectId来查询数据,在MongoDB的内置shell中可以用这个查询语句:

db.users.find({'_id':ObjectId('543900f88d319f6c2bdf14c3')})

在python中使用pymongo进行查询的时候,我们需要导入bson模块,代码如下:

#/usr/bin/python3
import pymongo
from bson.objectid import ObjectId
u=users.find_one({'_id':ObjectId('543900f88d319f6c2bdf14c3')})
print(u)

这样就能在MongoDB中查询到所需的数据。