问题
I need get documents from db by oid, like:
Docs.objects(_id='4f4381f4e779897a2c000009')
But how to do it, if _id requires ObjectId object and even I try to set ObjectId from pymongo it doesn't work.
Docs.objects(_id=pymongo.objectid.ObjectId('4f4381f4e779897a2c000009'))
return empty list
回答1:
How about just using the raw string:
Docs.objects.get(id='4f4381f4e779897a2c000009')
That is probably the easiest way ... right ?
回答2:
This should work:
Docs.objects(pk='4f4381f4e779897a2c000009')
回答3:
Came to this question because I had a lot of trouble with this myself. It seems like PyMongo changed this and objectid is no longer inside pymongo and is now instead:
import bson
Doc.objects.get(id=bson.objectid.ObjectId('4f4381f4e779897a2c000009'))
Also, Mongoengine uses the name 'id' for the ObjectID field.
来源:https://stackoverflow.com/questions/9988352/how-to-search-document-by-oid-in-mongoengine