簡體   English   中英

用日期貓鼬查詢

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM