What is the correct way to query MongoDB for _id using string by using Python?

MFB picture MFB · Oct 21, 2011 · Viewed 22.6k times · Source

I am using pymongo driver. Supposedly, one can use a string to query the _id field of a document, like this:

thing = db.things.find_one({'_id':'4ea113d6b684853c8e000001'})

But it doesn't work. What am I doing wrong?

Answer

DhruvPathak picture DhruvPathak · Oct 21, 2011

It should be :

from pymongo.objectid import ObjectId   
thing = db.things.find_one({'_id': ObjectId('4ea113d6b684853c8e000001') })

EDIT: The current import is: from bson.objectid import ObjectId