首页 > 解决方案 > 使用日期类型的猫鼬查询

问题描述

我正在尝试将请求正文中的参数转换为猫鼬查询,以mongodb获取"lastUpdated"大于"2018-04-03T08:01:19.269Z". 我通过邮递员在正文中使用参数发布请求

{
    "checkedOut" : false,
    "valid" : false,
    "language" : "en",
    "lastUpdated" : "2018-04-03T08:01:19.269Z",
    "__v" : 0
}

该响应在响应"lastUpdated"等于的数据方面效果很好"2018-04-03T08:01:19.269Z"。我在我的代码中编写了一个函数:

for (const key in params) {
     if (key === "lastUpdated") {
            params[key] = {$gte : value};
     }
}
return params

所以我得到了一个新的查询:

{ checkedOut: false,
  valid: false,
  language: 'en',
  lastUpdated: { '$gte': '2018-04-03T08:01:19.269Z' },
  __v: 0 
}

但它仍然不起作用......请帮助......

标签: node.jsmongoose

解决方案


在您的情况下value是一个字符串,因此您应该通过以下方式将其转换为日期

for (const key in params) {
   if (key === "lastUpdated") {
      params[key] = {$gte : new Date(value)};
   }
}
return params

这样 mongoDB 会比较dates with valid date


推荐阅读