如何在MongoDB中为集合内所有文档的created_at字段增加1毫秒
为MongoDB集合所有文档的audit.created_at字段增加1毫秒
解决方案(针对字符串格式日期)
如果你的audit.created_at是示例中的ISO字符串格式,使用updateMany结合聚合管道批量更新:先将字符串转为日期对象,添加1毫秒后再转回标准ISO字符串格式。
db.yourCollection.updateMany( {}, // 匹配集合中所有文档 [ { $set: { "audit.created_at": { $dateToString: { format: "%Y-%m-%dT%H:%M:%S.%LZ", date: { $add: [ { $toDate: "$audit.created_at" }, 1 // 增加1毫秒 ] } } } } } ] )
针对Date类型日期的简化版本
如果audit.created_at已经是MongoDB原生的Date类型,无需字符串转换,直接执行:
db.yourCollection.updateMany( {}, [ { $set: { "audit.created_at": { $add: ["$audit.created_at", 1] } } } ] )
注意事项
- 替换代码中的
yourCollection为你的实际集合名称 - 执行批量更新前,建议先用
find查询部分文档验证转换逻辑,避免数据异常 - 若集合数据量极大,考虑分批更新以降低数据库负载
内容的提问来源于stack exchange,提问作者YourMomsDataEngineer
相关产品推荐
相关产品推荐

