如何在python中将mongoDB objectID转换为字符串

时间:2015-12-08 06:11:37

标签: python pandas pymongo

我正在读取从mongoDB到pandas dataframe的数据..

client = MongoClient('localhost',27017)
db = client.test_insert                     ## name of the database
collection = db.dataset2 

df = pd.DataFrame(list(db.dataset2.find()))

这将是来自mongoDB的dataset2集合的所有文档。然后我将它转换为pandas数据框。 接下来我正在存储插入文档的最后插入的objectID ..

last_inserted_id = df['_id'].tail(1)

然后我想只读入在dataset2集合中插入的新文档。我试图这样做。

df2 = db.dataset2.find({"_id": {"$gt": ObjectId(last_inserted_id) }})

但它给了我一个错误

TypeError: id must be an instance of (str, unicode, ObjectId), not <class       
'pandas.core.series.Series'>

我转换了数据框&#39; _id&#39;列到字符串但它没有工作..给我同样的错误.. 怎么做?请帮忙

1 个答案:

答案 0 :(得分:1)

您是否尝试过对发生错误的调用进行此更改?

df2 = db.dataset2.find({"_id": {"$gt": last_inserted_id }})

这似乎就是你要做的事情。 last_inserted_id是要搜索的值; ObjectId是一个类,而不是该mongo find的有效参数。