Node.js和Mongoose-值转换至日期失败(过滤created_at日期)

时间:2018-10-22 09:25:37

标签: node.js mongodb mongoose

我正在创建一个搜索端点,该端点将通过日期范围过滤结果。

http://0.0.0.0:3000/api/v1/transactions/search?endDate=2018-10-03T14:07:03.382Z

因此,以上所述,希望搜索直到且等于created_at日期的所有交易。

console.log(req.query.endDate) // 2018-10-03T14:07:03.382Z

这是我建立的查询的一部分

created_at = {
   gte: startDate,
   lte: endDate,
};

    let query = {
    ...query,
    created_at
}

const transactions = await Transaction.find(query);

这是我的查询字符串的样子

{ created_at: { lte: '2018-10-03T14:07:03.382Z' } }

但是我遇到以下错误。

  

到目前为止,值“ {lte:'2018-10-03T14:07:03.382Z'}”的发布失败   模型“交易”的路径“ created_at””

1 个答案:

答案 0 :(得分:2)

您必须使用日期数据类型,日期查询不接受字符串。

尝试

{ created_at: { $lte: new Date('2018-10-03T14:07:03.382Z') } }