mongodb - MongoDB 查询以使用另一个日期字段加 1 天更新文档中的日期字段
问题描述
我正在尝试使用同一文档中的另一个日期字段(例如 currentTermEndDate)更新集合中多个文档中的日期字段(例如 nextChargeDate),将 currentTermEndDate 增加 1 天。
这是我编写的更新函数:
db.some_collection.updateMany(
{$or: [{_id: ObjectId('5c3e62ef2e9c4e0008f4749f')}, {_id: ObjectId('5c3e635a2e9c4e0008f47852')}, {_id: ObjectId('5c3e63a12e9c4e0008f47ab9')}]},
{
$set: { **nextChargeDate: new Date({$add: [ "currentTermEndDate", 1*24*60*60000 ]}**) }
}
)
这是 Mongo 中的更新:
当前期限结束日期:2019-04-04 23:59:59.999
下一个收费日期:1969-12-31 18:00:00.000
如果有人可以帮助解决方案以达到预期的结果,那将是非常有帮助的:
当前期限结束日期:2019-04-04 23:59:59.999
下一个收费日期:2019-04-05 23:59:59.999
提前致谢。
解决方案
您需要将日期作为ISODate("dateField").getTime()
. 试试下面的查询: -
{$or: [{_id: ObjectId('5c3e62ef2e9c4e0008f4749f')}, {_id: ObjectId('5c3e635a2e9c4e0008f47852')}, {_id: ObjectId('5c3e63a12e9c4e0008f47ab9')}]},
{
$set: { "nextChargeDate": new Date(ISODate("currentTermEndDate").getTime()+ 1*24*60*60000) }
}
推荐阅读
- c - C:读取文件中的第二行后的 Realloc() 导致垃圾值
- android - 如果文本字段包含“\r”/回车,则单击按钮
- python - 列表的平均值,以 100 项为单位
- python - PYQT:如果选择了组合框中的项目,则设置 lineedit 的文本
- node.js - 删除带有 Cheerio 某些 URL 的链接标签
- gradle - 如何构建 Gradle 构建以允许构建相互依赖的库
- java - 如何将结果从 Java 中的本机查询转换为字符串?
- spring-boot - thymeleaf 模板中未加载静态资源
- angular - Promise 在 Angular 中返回
- javascript - Inputmask jquery 不允许 mm/dd/yy 格式