【问题标题】:Between dates query in MongoDBMongoDB中的日期查询
【发布时间】:2015-02-19 21:58:14
【问题描述】:

我正在尝试在 MongoDB 中的两个日期之间进行查询,但我没有得到任何回复,但我确实有正确的数据。我在想日期格式可能是错误的。这是正确的吗?

这是我正在运行的查询

  { '$gte': Sun Feb 01 2015 02:00:00 GMT+0200 (IST),
      '$lt': Tue Mar 03 2015 02:00:00 GMT+0200 (IST) }

我的 JS 查询代码是这样的

query.created = {$gte:new Date(this.props.startDate), $lt:new Date(this.props.endDate)};

【问题讨论】:

  • 你检查this SO了吗?
  • @Ethaan 现在看起来格式错误,谢谢
  • 注意不要在这里混淆mongo shell和meteor ...您发布的JS代码看起来不错(Meteor到处都使用J​​S Date 对象)。我不明白第一个对象是什么(它甚至不是有效的 JSON)..
  • @mnemosyn 是创建查询的 console.log

标签: mongodb meteor


【解决方案1】:

Mongo 识别 ISODate 类型。它可用于进行常见的与日期相关的查询(例如您正在尝试执行的查询)。

所以应该是这样的:

{ '$gte': ISODate(01-02-2015T02:00:00Z),
  '$lt': ISODate(03-03-2015T02:00:00Z) }

请进一步阅读this 文档了解更多详情。

另外,查看this官方在线课程的链接,有一个部分可以解决您的问题。

【讨论】:

  • AFAIK,ISODate 是 mongo 控制台的一部分,Meteor 不知道
  • 哇!我没有看到流星标签,对此感到抱歉,就像你说的那样,这个答案是为了处理 mongo 控制台。我应该删除答案吗?
【解决方案2】:
db.collection.find({
    created_at: {
        $gte: ISODate("2015-02-01T00:00:00.000Z"),
        $lt: ISODate("2015-03-03T00:00:00.000Z")
    }
})

【讨论】:

    【解决方案3】:

    我使用twix.js 并在与我的日期范围条件匹配的数组中发布我的响应集合。

    【讨论】:

      猜你喜欢
      • 2014-12-15
      • 2013-03-16
      • 1970-01-01
      • 2014-01-13
      • 2017-10-10
      • 2020-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多