如何在mongoengine中搜索oid文档

Den*_*nis 7 python mongodb mongoengine

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

Docs.objects(_id='4f4381f4e779897a2c000009')
Run Code Online (Sandbox Code Playgroud)

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

Docs.objects(_id=pymongo.objectid.ObjectId('4f4381f4e779897a2c000009'))
Run Code Online (Sandbox Code Playgroud)

返回空列表

Ros*_*oss 24

这应该工作:

Docs.objects(pk='4f4381f4e779897a2c000009')
Run Code Online (Sandbox Code Playgroud)

  • @Raptor 然后使用 .first() (2认同)

jos*_*iti 17

如何使用原始字符串:

Docs.objects.get(id='4f4381f4e779897a2c000009')
Run Code Online (Sandbox Code Playgroud)

这可能是最简单的方法......对吗?


lui*_*iel 8

来到这个问题是因为我自己遇到了很多麻烦.似乎PyMongo 改变了这一点,并且objectid不再位于pymongo内,现在改为:

import bson
Doc.objects.get(id=bson.objectid.ObjectId('4f4381f4e779897a2c000009'))
Run Code Online (Sandbox Code Playgroud)

此外,Mongoengine对ObjectID字段使用名称"id".