Ani*_*non 7 python django mongodb pymongo mongoengine
在django中如果我使用MongoEngine,如何获取查询集的最新实例
通常我们这样做
Users.objects.latest('id')
Run Code Online (Sandbox Code Playgroud)
但我不能latest在MongoEngine中使用.
;).我陷入了困境.
我在这里找不到解决方案.但我已经实施了.你对下面的意见怎么样?
Users.objects.all().order_by('-id').limit(1)[0]
Run Code Online (Sandbox Code Playgroud)
这将返回最新的实例.
并通过将其交给mongoenngine来解决问题.
https://github.com/anishmenon/mongoengine/
您可以安装并使用
Users.objects.latest('id')
Run Code Online (Sandbox Code Playgroud)
小智 5
罗斯的回答已经足够好了。
但是如果你真的需要一个latest(),实现一个自定义的 QuerySet 可以做到这一点。
“装饰器”方式:
class Users(Document):
username = StringField()
@queryset_manager
def latest(doc_cls, queryset):
return queryset.order_by('-id').first()
Run Code Online (Sandbox Code Playgroud)
“元”方式:
class UsersQuerySet(QuerySet):
def latest(self):
return self.order_by('-id').first()
class Users(Document):
meta = {'queryset_class': UsersQuerySet}
Run Code Online (Sandbox Code Playgroud)
现在你可以:
Users.objects.latest()
# or
Users.latest()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3391 次 |
| 最近记录: |