Mongodb 仅当满足特定条件时,在特定时间后自动更新字段

Mongodb 仅当满足特定条件时,在特定时间后自动更新字段,mongodb,mongoose,Mongodb,Mongoose,Mongodb可以选择在文档上设置TTL 我想知道是否有类似的功能,允许在特定时间后更新特定字段 基本上,我想要实现的是在一段特定时间后(仅当文档处于挂起状态时)将文档的字段状态从挂起更新为过期 我知道我可以使用cronjobs,但首先我想检查是否可以在Mongodb中使用 此外,是否可以使用条件设置TTL?是否仅当状态已过期时才在X天后删除文档 我想要实现的是在特定时间段后将文档的字段状态从待定更新为过期 今天无法实现,您必须创建自己的脚本 此外,是否可以使用条件设置TTL?喜欢 仅当状态已过

Mongodb可以选择在文档上设置TTL

我想知道是否有类似的功能,允许在特定时间后更新特定字段

基本上,我想要实现的是在一段特定时间后(仅当文档处于挂起状态时)将文档的字段状态从挂起更新为过期

我知道我可以使用cronjobs,但首先我想检查是否可以在Mongodb中使用

此外,是否可以使用条件设置TTL?是否仅当状态已过期时才在X天后删除文档

我想要实现的是在特定时间段后将文档的字段状态从待定更新为过期

今天无法实现,您必须创建自己的脚本

此外,是否可以使用条件设置TTL?喜欢 仅当状态已过期时才在X天后删除文档


我建议您将设置状态的脚本也设置为readyToBeDeletedSince:Date,并将您的TTL放在该字段上。

关于带条件的TTL,我发现有一个名为“partialFilterExpression”的选项,您可以将其添加到索引中

例如,仅当状态为“待定”时,以下内容才会在5分钟后删除文档

db.mymodel.createIndex({ createdAt: 1 }, { expireAfterSeconds: 300, partialFilterExpression: { status: 'PENDING' } })