[英]Querying with mongoose of dates type
我试图将请求正文中的参数转换为猫鼬查询,以获取mongodb
"lastUpdated"
大于"2018-04-03T08:01:19.269Z"
的数据的响应。 我通过邮递员在正文中使用参数发布请求
{
"checkedOut" : false,
"valid" : false,
"language" : "en",
"lastUpdated" : "2018-04-03T08:01:19.269Z",
"__v" : 0
}
该响应在响应数据whoes "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
}
但这仍然行不通......请帮助......
在您的情况下, value
是一个字符串,因此您应该通过以下方式将其转换为日期 :
for (const key in params) {
if (key === "lastUpdated") {
params[key] = {$gte : new Date(value)};
}
}
return params
这样,mongoDB会将dates with valid date
进行比较。
使用查询生成器将解决此问题:
const query = model.find();
let datequery = {};
let otherquery = {};
for (const key in params) {
if (key === "lastUpdated") {
datequery[key] = params[key];
} else {
otherquery[key] = params[key];
}
}
console.log(otherquery,datequery);
query.where(transformCondition(otherquery));
query.where('lastUpdated').gte(datequery['lastUpdated']);
return query;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.