【问题标题】:Storing Date objects in mongo and retrieving and comparing them在 mongo 中存储 Date 对象并检索和比较它们
【发布时间】:2014-12-18 02:08:30
【问题描述】:

我的模型看起来像:

var purchaseSchema = new Schema({
  forDate: {
    type: Date,
    default: moment().add(1, 'days')
  },
  name: Sting
}

Moment 默认包括日期和时间。

"2014-12-19T01:23:56.000Z"

但是稍后我希望在我的 mongo 查询中执行比较,例如,

forDate =(某个特定日期)

但是这些比较是行不通的,因为在数据库中,我们有日期和时间。

在这种情况下,如何在 mongo 中存储信息并进行比较?

【问题讨论】:

    标签: mongodb date


    【解决方案1】:

    我建议您将其存储为实际日期,而不是字符串。

    default: moment().add(1, 'days').toDate()
    

    但由于这是默认设置,您需要将其添加为函数:

    var purchaseSchema = new Schema({
      forDate: {
        type: Date,
        default: function() { return moment().add(1, 'days').toDate(); }
      },
      name: Sting
    }
    

    【讨论】:

      【解决方案2】:

      您需要确保将日期存储为 ISODate 对象。您的驱动程序可能会在您的编程语言中处理可比较对象之间的转换。

      在 mongo shell 中显示时,ISODate 将如下所示:

      > db.mycoll.findOne();
      {
      "date" : ISODate("2014-01-28T00:10:57.932Z"),
      ....
      }
      

      【讨论】:

        猜你喜欢
        • 2020-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-15
        • 2013-03-31
        • 1970-01-01
        相关资源
        最近更新 更多