我正在尋找撰寫一個查詢來根據日期匯總數量。
我有看起來像這樣的檔案:
{
"_id" : 1234,
"itemNumber" : "item 1",
"date" : ISODate("2021-10-26T21:00:00Z"),
"quantity" : 1,
"__v" : 0
}
和這樣的查詢:
//monogoose
myCollection.aggregate().group({
_id: '$itemNumber',
ninetyDays: {
$sum: {
$and: {
$gte: ["date", dayjs().subtract(90, 'd').toDate()],
$lt: ["date", dayjs().toDate()]
}
}
}
})
在上面的查詢ninetyDays中始終為 0。
我基本上是想獲得給定日期范圍內的數量總和。
非常感謝幫助。
謝謝
uj5u.com熱心網友回復:
$cond如果您的條件匹配,您可以使用1 或 0 求和。
假設你的日期表達是正確的這應該作業,但不要偽造$在date。
db.collection.aggregate([
{
"$group": {
"_id": "$itemNumber",
"ninetyDays": {
"$sum": {
"$cond": {
"if": {
"$and": [
$gte: ["$date", dayjs().subtract(90, 'd').toDate()],
$lt: ["$date", dayjs().toDate()]
]
},
"then": 1,
"else": 0
}
}
}
}
}
])
這里的示例我使用了 mongo$$NOW但如果您的日期有效,則使用您的代碼更容易。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/340241.html
標籤:javascript 节点.js MongoDB 猫鼬 mongodb-查询
上一篇:如何過濾mongodb中的檔案?
