我尝试使用聚合来获得本月数据的计数,但它没有给我找到匹配,即使我在DB中有数据。
var month = new Date().getMonth();
var year = new Date().getFullYear();
const start = new Date(year, month, 1).setHours(0, 0, 1);
const end = new Date(year, month + 1, 0).setHours(23, 59, 59);
const data = await verificationModel.aggregate([
{
$match:{'status':{ $gt: 3, $lt:7},'createdAt': { $gt:start, $lt:end},'fename': { $ne: null }}
},
{
$facet: {
"categorizedBycasecount": [
{
$unwind: "$fename"
},
{
$sortByCount: "$fename"
},
{$limit:5},
]
}
}
]);
创建了一个蒙戈Playground它在那里工作link
如果删除createdAt,则过滤器数据可见
3条答案
按热度按时间uyto3xhc1#
我建议使用像moment.js,Luxon或Day.js这样的Date库,然后简单地如下所示:
只有一个元素的
$facet
阶段对我来说没有多大意义,我更喜欢$group
jxct1oxe2#
除了开始日期和结束日期之外,其他一切都很好
计算的开始日期和结束日期为字符串格式,如下所示
您可以更新代码以获得mongodb createdAt字段所需的格式
xzlaal3s3#
这起作用了。