为数据库添加序号 & 显示最新 n 项
summary
通过将数据库中所有条目关联一个父项,由 id 获得序号,实现根据创建时间添加序号或显示最新的 n 项。
tags
Notion
Formula
Example
date
Feb 6, 2021
Chinese version
English version
介绍几种为数据库添加序号 & 显示最新 n 项的方法:通过将数据库中所有条目关联一个父项,由 id 获得序号,实现根据创建时间加序号或显示最新 n 项(最后一个方法还可用于最后修改时间)。
添加序号
序号 子数据库
设置方法:
- 子数据库设置筛选,新增时自动关联同一父项(已创建的可以全选,右键
edit property
增加父项关联)。
- 添加函数属性
id()
(就是 PageID)。
- 通过父项得到 id 汇总,子项再 rollup 该值(由于无法直接 rollup 一个 rollup 属性,需要在父项中新建一列 formula 供子项 rollup)。
- 通过正则表达式替换,计算全部 id 内,指定 id 是第几个(等于前面的字符数/32+1)。
注意点:
- 序号的顺序与父项内关联顺序一致,默认是创建顺序,可以拖动调整。
- 序号函数中加入取整是因为在添加一个新子项时,可能会出现 rollup 未及时更新的情况,但因为匹配不到该 id,会+0.9....,取整后即+1。
显示最新的 n 项
这里以 3 项为例,展示了两种方法
方案1:获取最新三项 id,判断是否包含
最新3项方案1 子数据库
显示全部
最新3项方案1 父数据库
标题
子项
id_rollup
最新3项 id
设置方法:
- 子数据库设置筛选,新增时自动关联同一父项。
- 添加函数属性获取 id。
- 通过父项得到 id 汇总。
- 在
最新3项 id
的函数内修改最后的3
为你想要显示的个数,即可通过slice
函数获得最新 n 项 id。
- 在子项中 rollup
最新3项 id
,添加公式最新3项
判断该项的 id 是否在最新3项内。
- 添加筛选条件
最新3项
为真。
方案2:依次获取最大时间戳(可用于创建时间,最后修改时间或自定时间属性)
最新3项方案2 子数据库
显示全部
最新3项方案2 父数据库
设置方法:
- 子数据库设置筛选,新增时自动关联同一父项。
- 添加创建时间(或最后修改时间)生成的时间戳。
- 通过父项得到最大时间戳(在 rollup 中可以选择 Calculate 为 Max)。
- 判断是否和子项相同,获取最大值,并标记为0。
- 重复 n 次 3, 4 步骤。
- 标记为0的项就是最大 n 项。
注意该方案需要每个项目有不同的时间戳,即在不同的分钟创建或修改。可行的改进:在后四位加入信息,如人工加入数字区别,或用 Name 字段的长度,或者把字母内容转换成数字等等,只要保证每个「时间戳」不同即可,否则会匹配到第一个时间戳,即出现并列的情况。