亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從日期字符串計算整年

從日期字符串計算整年

慕萊塢森 2023-03-10 14:00:37
我目前在 Node 中使用貓鼬作為數據庫。我有兩個模型 product 和 customer 。每當客戶購買產品時,當前日期就會存儲在產品的SellingDate屬性中?,F在我想要實現的是,當我們給出一個隨機日期作為輸入時,它應該將它與最多一年的所有產品的所有銷售日期進行比較,并返回給我們一年之間的所有日期的計數。例如,如果我們在數據庫中有5 條記錄,即 { “Sun Feb 25 2015”,“Fri Mar 25 2015”,“Sat Dec 25 2015”,“Mon Feb 25 2016” } 我給“Sun Feb 25, 2015”2015 年 2 月 - 2016 年 2 月.... 它應該比較字符串格式的日期,因為我以“日月日年”格式存儲日期......
查看完整描述

2 回答

?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

您可以進行聚合,首先使用 將日期字符串轉換為日期$toDate,并使用 跟蹤年份$year。然后你可以$match在給定的日期范圍內的所有文件,最后$group是年份和$count:


YourModel.aggregate([

    { "$addFields": {

       "year":{ "$year": {

            "$toDate": "$date"

        }

    } }},

    {

        $match: {

            // define your range of years here, it would be 2015 - 2016 in your case

            year: {$gte: 2016, $lte: 2020}

        }

    },

    {

        $group: {

            _id: {year: "$year"}

        }

    },

     {

      $count: "totalCountPerYearRange"

    }

]);


查看完整回答
反對 回復 2023-03-10
?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

只要日期字符串在數組中 - 使用 [] NOT {}(它定義了一個需要屬性:值對的對象),那么您就可以將字符串轉換為日期并進行簡單的比較。以下將返回一個數組,您可以在其中簡單地獲取數組的長度以進行計數。


let myDates = [

    "Thu Jan 07 2016",

    "Tue Mar 01 2016",

    "Wed May 25 2016",

    "Sat Jun 25 2016",

    "Sun Aug 14 2016",

    "Fri Nov 18 2016",

    "Fri Jan 06 2017",

    "Sun Apr 16 2017",

    "Sun May 21 2017",

    "Sun Jul 30 2017",

    "Fri Sep 22 2017",

    "Sun Nov 12 2017",

    "Sun Dec 24 2017"

]


let firstDate = new Date("Wed May 25 2016");

let lastDate = new Date("Thu May 25 2017");


let matches = myDates.filter(d => {if (new Date(d) >= firstDate && new Date(d) <= lastDate) return d});

console.log(matches);

console.log(matches.length);


查看完整回答
反對 回復 2023-03-10
  • 2 回答
  • 0 關注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號