我正在读取从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;列到字符串但它没有工作..给我同样的错误.. 怎么做?请帮忙
答案 0 :(得分:1)
您是否尝试过对发生错误的调用进行此更改?
df2 = db.dataset2.find({"_id": {"$gt": last_inserted_id }})
这似乎就是你要做的事情。 last_inserted_id
是要搜索的值; ObjectId
是一个类,而不是该mongo find的有效参数。