使用 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)
我正在学习使用 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)