我需要通过oid从db获取文档,例如:
Docs.objects(_id='4f4381f4e779897a2c000009')
但是如何做到这一点,如果_id需要ObjectId对象,甚至我尝试从pymongo设置ObjectId它也不起作用。
Docs.objects(_id=pymongo.objectid.ObjectId('4f4381f4e779897a2c000009'))
返回空列表
答案 0 :(得分:23)
这应该有效:
Docs.objects(pk='4f4381f4e779897a2c000009')
答案 1 :(得分:17)
如何使用原始字符串:
Docs.objects.get(id='4f4381f4e779897a2c000009')
这可能是最简单的方法......对吧?
答案 2 :(得分:7)
来到这个问题因为我自己遇到了很多麻烦。似乎PyMongo changed this和objectid不再位于pymongo内,现在改为:
import bson
Doc.objects.get(id=bson.objectid.ObjectId('4f4381f4e779897a2c000009'))
此外,Mongoengine使用名称'id'作为ObjectID字段。