首页 > 解决方案 > 如何防止数据库搜索旧对象?

问题描述

我有一个使用 Postgresql 作为数据库的 Django 应用程序。我存储了一些具有日期时间字段的对象。在我的查询中,我通常想获取存储在最后一天或上周的对象,因此较旧的对象对我来说并不重要。

我无法删除旧对象,因为有时我想获取所有数据。

我想优化应用程序。有没有办法只搜索最后一天存储的数据而不搜索其他数据?

编辑:

想象一下有这么多的记录,比如 100 万条,而其中只有一小部分是为今天的。如果我使用Model.objects.filter(datetime_field__gte=last_week),数据库会检查所有记录吗?

标签: djangodatabasepostgresqldjango-rest-frameworkdjango-queryset

解决方案


您可以在 DateTime 字段上查询过滤。

import datetime


last_week = datetime.date.today() - datetime.timedelta(days=7)
Model.objects.filter(datetime_field__gte=last_week)

请务必在此处此处查看文档


推荐阅读