mongodb - 如何在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 ] } }
}
])
测试: mongoplayground
推荐阅读
- laravel - 想要继续显示日期字段的旧日期吗?
- php - 日历根据显示的日期显示日期,但从当天开始(php,mysql)
- pandas - 结合互补的 DataArrays
- javascript - Paypal Braintree pop 在 chrome 中被阻止
- javascript - d3.csvParse 无法正确读取字符串
- c# - 传递用于强制转换的接口类型作为参数
- r - 使用闪亮 R 中的预测值填充动态表
- xml - 这个 Format.ps1xml 文件有什么问题?“TableControl、ListControl、WideControl、CustomControl 中缺少一个节点”
- typescript - 使用类型中的“in”键入具有计算属性的类型
- python - 如何使用 Shapely 沿中心线绘制正方形/矩形