admin管理员组文章数量:814986
排序在汇总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中不起作用
版权声明:本文标题:排序在汇总mongodb中不起作用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1715196016a822313.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论