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\':\'4ea113d6b6848
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
thing = db.things.find_one({'_id':ObjectId('4ea113d6b684853c8e000001')}) should work
To print it:
import pymongo
from bson.objectid import ObjectId
print(db.things.find_one({'_id': ObjectId('4ea113d6b684853c8e000001')}))
if you don't want to print, store in other variable
PyMongo documentation does not seem to be in sync with the current version. ObjectIds are now under bson.objectid namespace. If I remember right, they have been that way since version 2.3. Use from bson.objectid import ObjectId.
PyMongo has changed its structure. ObjectID is no longer imported from pymongo, but from bson. It should now be:
from bson.objectid import ObjectId
thing = db.things.find_one({'_id': ObjectId('4ea113d6b684853c8e000001')})
As a reminder, per pypi/pymongo, do not install the “bson” package. PyMongo comes with its own bson package; doing “pip install bson” installs a third-party package that is incompatible with PyMongo.