【问题标题】:Convert String date to timestamp in MongoDB在 MongoDB 中将字符串日期转换为时间戳
【发布时间】:2017-01-10 08:39:12
【问题描述】:

我有一个包含以下数据的 MongoDB 集合:

{
  "_id" : "8BDAbpoqXYpWGgy24", // String
  "date" : "2013-03-19"  // String
}

有没有办法将日期字段转换为时间戳值(ISODate)?

【问题讨论】:

  • 你必须编写一个脚本,一点点 JS 来提取记录并将它们重新保存为正确的字段
  • 好的,好像这样有效:db.collection.find().forEach(function(doc) { doc.date=new ISODate(doc.date); db.collection.save(doc); })
  • 可能我唯一要添加的是对_id 的排序,以避免多次更新文档,但这对您来说可能不是问题

标签: mongodb timestamp mongodb-query aggregation-framework


【解决方案1】:

您可以尝试使用下面的$toLong$dateFromString 聚合

db.collection.aggregate([
  {
    "$project": {
      "date": {
        "$toLong": {
          "$dateFromString": {
            "dateString": "$date"
          }
        }
      }
    }
  }
])

你可以试试here

【讨论】:

    猜你喜欢
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 2011-10-23
    • 2021-07-06
    • 1970-01-01
    相关资源
    最近更新 更多