Mongo查询$ lte on date字段无法正常工作

时间:2018-03-17 09:54:36

标签: javascript mongodb date

我正在尝试使用简单查询检索所有文档:

  • state = wainting
  • available_at之前或等于现在(使用$lte

所以这是我的要求:

let documents = MyCollection.find({state:'waiting', available_at: {$lte: new Date()}}).fetch()

我真的不明白为什么,但它永远不会回报任何东西。 我尝试了一些“请求”,因为它不是别的,但一切都很好看:

MyCollection.find({state:'waiting'}).fetch()
> [Class]

MyCollection.find({state:'waiting'}).fetch()[0].available_at
> Sat Mar 17 2018 05:43:07 GMT-0400 (EDT)

new Date()
> Sat Mar 17 2018 05:45:06 GMT-0400 (EDT)

MyCollection.find({state:'waiting'}).fetch()[0].available_at < new Date()
> true

MyCollection.find({state:'waiting', available_at: {$lte: new Date()}}).fetch()
> []

MyCollection.find({available_at: {$lte: new Date()}}).fetch()
> []

------------------- [修改] ------------------ -

好的,我尝试在Mongo上插入新文档:

之前:

let now = new Date()
{
  state: 'waiting',
  available_at: now.setMinutes(now.getMinutes() + 2)
}

之后(工作)

let now = new Date()
{
  state: 'waiting',
  available_at: new Date(now.setMinutes(now.getMinutes() + 2))
}

第二个工作得很好,但我不明白为什么?当我在控制台上同时登录两个对象时,available_at字段与所有object原型具有相同的类型Date

0 个答案:

没有答案