在django中如果我正在使用MongoEngine,如何获取查询集的最新实例
通常我们会这样做
Users.objects.latest('id')
但我不能在MongoEngine中使用latest
。
;)。我陷入困境。
我在这里找不到解决方案。但我已经实施了。你对以下的看法是什么
Users.objects.all().order_by('-id').limit(1)[0]
这将返回最新的实例。
并通过将其提交给mongoenngine来解决问题。
https://github.com/anishmenon/mongoengine/
您可以安装它并使用
Users.objects.latest('id')
答案 0 :(得分:9)
你可以这样做:
Users.objects.order_by('-id').first()
答案 1 :(得分:1)
罗斯的答案足够好。
但是如果您确实需要latest()
,则可以实现自定义QuerySet来实现。
“装饰器”方式:
class Users(Document):
username = StringField()
@queryset_manager
def latest(doc_cls, queryset):
return queryset.order_by('-id').first()
“元”方式:
class UsersQuerySet(QuerySet):
def latest(self):
return self.order_by('-id').first()
class Users(Document):
meta = {'queryset_class': UsersQuerySet}
现在您可以:
Users.objects.latest()
# or
Users.latest()