python - 将 MongoDB 中的所有 MongoDB 日期时间字符串更新为 ISO 日期时间格式

标签 python mongodb pymongo

我在查询我的 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/

相关文章:

python - 使用 "$gte"和 "$lte"时 Pymongo 返回错误

mongodb - 客户端退出后 Pymongo 放弃 "pymongo_kill_cursors_thread"

python - 使用列表从 numpy 数组数组中提取元素

python - Django - 没有模块名称 site.urls

python - 如何使用python并行查询数据库

java - 为mongodb-java-driver中的嵌入文档编写Codec

python - 使用 CNN+LSTM 模型和 TimeDistributed 层包装器进行 Keras 时间序列预测

javascript - 为什么我的 Node Express 应用程序无法从 Mongoose 获取数据?

javascript - 在 NodeJS 中处理多个、顺序、依赖的 mongo 查询结果的最佳方法

django - Pymongo 查询正常,但 Mongoengine 什么也不查询