中不起作用"/>
排序在汇总mongodb中不起作用
下面给出了我的Mongodb查询。根据createdat对数据进行排序无法正常工作。请帮助我解决问题。在mongodb中激发查询后,我已附加了实际输出和预期输出。我也想从最近7天开始逐日计数。
//下面是我的查询。请对此进行调查。
User.aggregate([{
$match: {
createdAt: {
$gte: new Date("2016-01-01")
}
}
}, {
$group: {
_id: {
"year": { "$year": "$createdAt" },
"month": { "$month": "$createdAt" },
"day": { "$dayOfMonth": "$createdAt" }
},
count:{$sum: 1}
}
},{"$sort": {"createdAt": 1}}]).exec(function(err,data){
if (err) {
console.log('Error Fetching model');
res.status(500).send();
} else {
res.send(data);
}
});
输出:-
[
{
"_id": {
"year": 2020,
"month": 5,
"day": 12
},
"count": 2
},
{
"_id": {
"year": 2020,
"month": 5,
"day": 7
},
"count": 2
},
{
"_id": {
"year": 2020,
"month": 5,
"day": 13
},
"count": 3
}
]
预期输出:-
[
{
"_id": {
"year": 2020,
"month": 5,
"day": 7
},
"count": 2
},
{
"_id": {
"year": 2020,
"month": 5,
"day": 12
},
"count": 2
},
{
"_id": {
"year": 2020,
"month": 5,
"day": 13
},
"count": 3
}
]
回答如下:您可以在下面的查询/代码中尝试:
User.aggregate([{
$match: {
createdAt: {
$gte: new Date("2016-01-01")
}
}
}, {
$group: {
_id: '$createdAt',
count:{$sum: 1}
}
},
{ $sort: {"_id": 1}},
{$project : {
year: { "$year": "$_id" },
month: { "$month": "$_id" },
day: { "$dayOfMonth": "$_id" },
count :1,
_id :0
}}]).exec(function(err,data){
if (err) {
console.log('Error Fetching model');
res.status(500).send();
} else {
res.send(data);
}
});
更多推荐
排序在汇总mongodb中不起作用
发布评论