繁体   English   中英

如何通过 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 的任何字段来获取文档?

您可以使用with_id()

class MyDocument(Document):
    ...
    @classmethod
    def get_by_id(cls, id):
        return cls.objects.with_id(id)

这将返回文档实例(如果存在)或None如果不存在)。

查看http://docs.mongoengine.org/guide/querying.html

答案很简单:

Model.objects(id='your-id')

我假设您知道主键字段的名称。

使用with_id 它专门用于此目的。

Model.objects.with_id('your-id')

如果没有找到对象,则返回None

但请确保您没有设置过滤器(就像过滤器方法一样),因为它会引发InvalidQueryError

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM