在mongo中存储Date对象并检索和比较它们

时间:2014-12-18 02:08:31

标签: mongodb date

我的模型看起来像:

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

默认情况下,时刻包括日期和时间。

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

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

forDate =(某个特定日期)

然而,这些比较不起作用,因为在数据库中,我们有日期和时间。

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

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

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

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

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