使用 Pony ORM 显示最后两个有序实体

Show last two ordered entities with Pony ORM

我正在学习使用 Pony ORM,并且有了这个 MWE...

from pony import orm
db = orm.Database()
class Test(db.Entity):
    label = orm.Required(str)
db.bind(provider='sqlite',filename=':memory:')
db.generate_mapping(create_tables=True)
with orm.db_session:
    Test(label='text02')
    Test(label='text01')
    Test(label='text03')
orm.select(t for t in Test).order_by(lambda: t.label).filter(lambda: t.label > 'text01').show()

...我可以按照我想要的方式对实体进行排序,然后用它来显示最后两个,知道哪个是最后两个。

id|label
--+------
1 |text02
3 |text03

有没有更好的方法在 relation/table 中显示最后一对 tuples/rows,尤其是当我不知道要过滤掉哪些实体时?我更愿意订购实体,然后只显示最后两个实体,而不必明确提供过滤器。有点像可以用BASHtail -n 2

您可以降序排序并取前两个元素。

orm.select(t for t in Test).order_by(lambda: desc(t.label)).limit(2)