通过日期和数字字段的总和与当前时间戳之间的日期比较来删除文档

Jac*_*cek 3 mongodb mongo-shell mongodb-query

MongoDB集合中的文档具有以下模式(仅显示相关字段):

{
    "TTLinSeconds" : 1800,
    "lastUpdatedTimestamp" : ISODate("...")
}
Run Code Online (Sandbox Code Playgroud)

我需要删除current timestamp大于lastUpdatedTimestamp加上TTLinSeconds字段中存储的值的所有文档.提前感谢您的建议.

Sou*_*gat 5

这可能有用(删除2017-01-25T00:30:00Z和2017-01-26T23:59:00Z之间的字段):

  db.collectionName.remove({
       $and : [
        {"lastUpdatedTimestamp": { 
           $gte:   ISODate("2017-01-25T00:30:00Z"), 
           $lt :   ISODate("2017-01-26T23:59:00Z")
       },
       {"TTLinSeconds" : value}
      ]
    }  
Run Code Online (Sandbox Code Playgroud)

建议:

我建议你使用变量的通用命名约定.

参考:

https://docs.mongodb.com/manual/reference/operator/update/currentDate/