[英]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.