如何在mongoengine中搜索oid文档

时间:2012-04-03 06:45:34

标签: python mongodb mongoengine

我需要通过oid从db获取文档,例如:

Docs.objects(_id='4f4381f4e779897a2c000009')

但是如何做到这一点,如果_id需要ObjectId对象,甚至我尝试从pymongo设置ObjectId它也不起作用。

Docs.objects(_id=pymongo.objectid.ObjectId('4f4381f4e779897a2c000009'))

返回空列表

3 个答案:

答案 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字段。