MongoDB 4.2中如何为ISODate类型日期添加2小时20分钟?
MongoDB 4.2 为ISODate字段添加指定时长的操作方法
针对你需要为每条数据的datetime字段(ISODate格式)添加2小时20分钟的需求,分两种场景提供操作方法:
1. 查询时计算生成新字段(不修改原数据)
如果只是需要在查询结果中展示添加时长后的日期,无需修改数据库中的原始文档,可以使用聚合管道的$addFields阶段,通过$add操作符计算新日期:
db.transactions.aggregate([ { $addFields: { AddTime: { $add: ["$datetime", 8400000] } // 2小时20分钟 = 2*3600000 + 20*60000 = 8400000毫秒 } } ])
执行后会返回包含原字段和新增AddTime字段的文档,结果与你给出的预期输出一致。
2. 批量更新文档添加新字段(持久化修改)
如果需要将计算后的日期永久保存到文档中,MongoDB 4.2支持在更新操作中使用聚合管道,可以通过updateMany实现批量修改:
db.transactions.updateMany( {}, // 空查询条件匹配所有文档 [ { $set: { AddTime: { $add: ["$datetime", 8400000] } } } ] )
执行该命令后,集合中所有文档都会新增AddTime字段,值为原datetime字段添加2小时20分钟后的ISODate。
内容的提问来源于stack exchange,提问作者Jayven Javier
相关产品推荐
相关产品推荐

