簡體   English   中英

如何根據日期過濾器聚合我的 mongo 數據

[英]how to aggregate my mongo data based on date filter

我是 mongodb 初學者。 初級 JavaScript 開發人員使用 mongodb/mongoose
我想知道是否有人可以幫助我完成這個簡單的挑戰:我想根據日期對結果進行分組(我可以按日期分組和過濾,但不能同時進行)

架構:

const ExpenseSchema = new Schema({
    item: String,
    amount: Number,
    date: Date,
    group: String,
})

在此處輸入代碼

樣本:

{
  "_id": {
    "$oid": "608c4fd352efae8cc8a10100"
  },
  "item": "Amril",
  "amount": 435.42,
  "date": {
    "$date": "2018-05-05T11:06:00.000Z"
  },
  "group": "food",
  "__v": 0
}

我的不工作 mongoose 查詢

enter code here

Expense.aggregate([
        {
            $match: 
            {
                date: { $gt: startDate, $lt: endDate }
            }
        },
         {
            $group:
            {
                _id: '$group',
                totalAmount: { $sum: "$amount" }
            }
        }], function (err, total) {
        res.send(total)
    })

提前致謝

在此處輸入圖像描述

已解決 - 將查詢更改為:

Expense.aggregate([
        {
            $match: {
                date: { $gt: new Date(new Date(startDate).setHours(00, 00, 00)), $lt: new Date(new Date(endDate).setHours(23, 59, 59)) }
            }
        },{$group:{
            _id:'$group',
            amount:{$sum:'$amount'}
        }}
    ], function (err, total) {
        res.send(total)
    })

    
})

添加:

 { $gt: new Date(new Date(startDate).setHours(00, 00, 00)), $lt: new Date(new Date(endDate).setHours(23, 59, 59)) }

代替:

{ $gt: startDate, $lt: endDate }

基於這篇文章: https://dev.to/itz_giddy/how-to-query-documents-in-mongodb-that-fall-within-a-specified-date-range-using-mongoose-and-node-524a

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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