Mongodb 可以选择在文档上设置 TTL。
我想知道是否有类似的功能允许在特定时间后更新特定字段。
基本上我想要实现的是在特定时间后将文档的字段状态从 PENDING 更新为 EXPIRED(仅当它是 PENDING 时)。
我知道我可以使用 cronjobs,但首先我想检查它是否可以在本地使用 Mongodb。
此外,是否可以根据条件设置 TTL?就像仅在状态已过期时才在 X 天后删除文档?
我想要实现的是在特定时间后将文档的字段状态从 PENDING 更新为 EXPIRED
今天无法实现,您必须创建自己的脚本
此外,是否可以根据条件设置 TTL?就像仅在状态已过期时才在 X 天后删除文档?
我建议您也设置设置状态的脚本,readyToBeDeletedSince: Date并将您的 TTL 放在该字段上。
关于带条件的 TTL,我发现有一个名为“partialFilterExpression”的选项可以添加到索引中。
例如,仅当状态为“PENDING”时,以下内容才会在 5 分钟后删除文档
db.mymodel.createIndex({ createdAt: 1 }, { expireAfterSeconds: 300, partialFilterExpression: { status: 'PENDING' } })