gpt4 book ai didi

mongodb - 有没有办法执行更新操作的 "dry run"?

转载 作者:IT老高 更新时间:2023-10-28 13:12:08 30 4
gpt4 key购买 nike

我正在更改我的 MongoDB 集合之一的架构。 (我一直将日期存储为字符串,现在我的应用程序将它们存储为 ISODates;我需要返回并更改所有旧记录以使用 ISODates 作为好吧。)我想我知道如何使用更新来做到这一点,但由于这个操作会影响数以万计的记录,所以我很犹豫是否发出一个我不能 100% 确定会起作用的操作。有什么方法可以对更新进行“试运行”,以向我展示少量记录的原始记录以及如何更改它?


编辑:我最终使用了向每条记录添加一个新字段的方法,然后(在验证数据正确之后)重命名该字段以匹配原始字段。它看起来像这样:

db.events.find({timestamp: {$type: 2}})
.forEach( function (e) {
e.newTimestamp = new ISODate(e.timestamp);
db.events.save(e);
} )

db.events.update({},
{$rename: {'newTimestamp': 'timestamp'}},
{multi: true})

顺便说一句,将字符串时间转换为 ISODates 的方法最终奏效了。 (我从 this SO answer 得到这个想法。)

最佳答案

我的建议是将 ISODate 添加为新字段。一旦确认一切看起来都不错,您就可以取消设置字符串日期。

关于mongodb - 有没有办法执行更新操作的 "dry run"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16610633/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com