我在查询我的 mongodb 集合时遇到了一些麻烦,因为它的日期时间都存储为字符串,格式如下: timestamp:"Sat Jun 09 2018 11:58:03 GMT-0400 (EDT)"
mongodb中timestamp
的类型是String。
我喜欢将其所有时间戳转换为 UTC ISO 日期时间。
我是 Mongo 的新手..我来自 MSSQL..我找不到一种方法来更新其所有格式奇怪的时间戳。
我的目标是运行查询{timestamp: {$lte: some iso datetime.}}
最佳答案
纯粹在 Mongo 中完成会很麻烦,你必须编写大量代码。
我认为最简单的解决方案是使用 moment.js库,因为它可以直接解析 RFC 2822 日期时间格式:
db.collection.find({}).forEach(function(doc) {
var ts = moment(doc.timestamp).toDate();
db.collection.updateOne(
{_id: doc._id},
{$set: { timestamp: ts} }
);
})
您可以多次运行上述命令,即当 timestamp
已经是正确的 Date
对象时,则不会中断。
关于python - 将 MongoDB 中的所有 MongoDB 日期时间字符串更新为 ISO 日期时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60439136/