使用YYYY-MM-DD格式查询以MongoDB保存的日期的最佳方法是什么?

时间:2018-02-13 05:12:25

标签: node.js mongodb mongoose

我目前的文件如下:

{
  _id: 123,
  nextBillingDate: '2018-02-12',
}

我需要一种方法来查询nextBillingDate 等于 的文档到今天。

例如,如果我有以下文件:

[
  {
    _id: 123,
    nextBillingDate: '2018-02-12'
  },
  {
      _id: 789,
      nextBillingDate: '2018-02-01'
  },
  {
      _id: 654,
      nextBillingDate: '2018-02-28'
  }
]

今天是2018-02-12,查询结果需要包含_id 123和789的文档。

1 个答案:

答案 0 :(得分:1)

尝试此查询

db.col.find(
    {$expr : 
        {$lte : 
            [
                {$dateFromString : {dateString : "$nextBillingDate"}},
                new Date("2018-02-12")
            ]
        }
    }
)

使用聚合

db.col.aggregate([
    {$match :
        {$expr : 
            {$lte : 
                [
                    {$dateFromString : {dateString : "$nextBillingDate"}},
                    new Date("2018-02-12")
                ]
            }
        }
    }
])