如何通过mongoengine中的主键获取文档?
How to get a document by its primary key in mongoengine?
我正在将应用程序从 App Engine 的 ndb 移植到 mongoengine。 ndb提供了Model.get_by_id
方法,我想用mongoengine来实现。那么如何通过自动生成的 ID 或 primary_key
设置为 True 的任何字段来获取文档?
查看 http://docs.mongoengine.org/guide/querying.html
答案很简单:
Model.objects(id='your-id')
我假设您知道主键字段的名称。
您可以使用 with_id()
:
class MyDocument(Document):
...
@classmethod
def get_by_id(cls, id):
return cls.objects.with_id(id)
这将 return 文档实例(如果存在)或 None
(如果不存在)。
使用with_id
。它专门用于此目的。
Model.objects.with_id('your-id')
它returns None
如果没有找到对象。
但请确保您没有设置过滤器(就像 filter method 一样),因为它会引发 InvalidQueryError
.
我正在将应用程序从 App Engine 的 ndb 移植到 mongoengine。 ndb提供了Model.get_by_id
方法,我想用mongoengine来实现。那么如何通过自动生成的 ID 或 primary_key
设置为 True 的任何字段来获取文档?
查看 http://docs.mongoengine.org/guide/querying.html
答案很简单:
Model.objects(id='your-id')
我假设您知道主键字段的名称。
您可以使用 with_id()
:
class MyDocument(Document):
...
@classmethod
def get_by_id(cls, id):
return cls.objects.with_id(id)
这将 return 文档实例(如果存在)或 None
(如果不存在)。
使用with_id
。它专门用于此目的。
Model.objects.with_id('your-id')
它returns None
如果没有找到对象。
但请确保您没有设置过滤器(就像 filter method 一样),因为它会引发 InvalidQueryError
.