如何使用Node.js和Mongoose查询日期?

Sha*_*oon 3 date mongoose node.js

我有:

    dates = {}
    today = new Date()
    todayminus7days = new Date(today).setDate(today.getDate()-7)
    dates.startDate = todayminus7days
    dates.endDate = today

    query =
      person_gender: filter.gender if filter.gender
      person_age:
        0:
          $gte: dates.startDate
        1:
          $lte: dates.endDate
Run Code Online (Sandbox Code Playgroud)

但是,当我通过Mongoose模型运行此查询时,结束查询是:

{ person_gender: 'female',
  person_age: 
   { '0': { '$gte': 1317055089524 },
     '1': { '$lte': Mon, 03 Oct 2011 16:38:09 GMT } } }
Run Code Online (Sandbox Code Playgroud)

这会在该日期范围内返回null结果.

我如何将Date传递给Mongoose呢?

cjo*_*ohn 6

这里你的问题不是与MongoDB或Mongoose有关,而是假设.setDate()返回一个Date(它没有).

如果您将初始化代码更改为:

...
todayminus7days = new Date(today);
todayminus7days.setDate(-7);
...

它应该按预期工作.