如何在mongodb中进行查询以查找过去六个月的日期



我遇到了一个问题,我想进行查询以查找过去六个月的日期。

我有一个场景,我想要每周的数量总和,我已经实现了,但我想进行一个查询,可以找到从当前日期到过去六个月日期的日期,所以我如何实现它 mongodb。

任何帮助将不胜感激。

db.rxTable.aggregate([
{
$addFields: {
rxDate: {
$dateFromString: {
dateString: "$rxDate"
}
},
quantity: {
$toInt: "$quantity"
}
}
},
{
$group: {
_id: { $week: '$rxDate' },
data: {
$addToSet: "$$ROOT",
},
sales: {
$sum: "$quantity"
}
}
}
])

我还在下面添加了我的查询。

例如,我已经在控制台的javascript中尝试过这种情况,但我希望它在mongodb中。

在这里,我发布了我在控制台中尝试过的示例。

var sixMonths = 1.577e+10;
sixMonths
15770000000
Date.now()
1589292791593
var current = Date.now();
undefined
current-sixMonths
1573522803658
Date(current-sixMonths)
"Tue May 12 2020 19:43:45 GMT+0530 (India Standard Time)"
Date(current-sixMonths)
"Tue May 12 2020 19:44:21 GMT+0530 (India Standard Time)"
new Date(current-sixMonths)
Tue Nov 12 2019 07:10:03 GMT+0530 (India Standard Time)
new Date()
Tue May 12 2020 19:55:19 GMT+0530 (India Standard Time)

您可以尝试以下查询:

db.collection.aggregate([
/** $$NOW gives you current date */
{
$project: { sixMonthOldDate: { $subtract: [ "$$NOW", 15770000000 ] } }
}
])

测试:蒙古游乐场

最新更新