我无法使用$ project获得所需的列。我的查询是
db.RecordLogs.aggregate([
{$match: {
$and: [
{EmployeeId : 102365},{LoggingDate : {
'$gte': ISODate("2019-06-15T04:00:00.000Z"),
'$lte': ISODate("2019-06-16T03:59:59.999Z")
}}]
}},
{$group: {_id : {Appname :"$AppName"},count : {"$sum":1}}},
{$project: {EmployeeName : 1, AgentId : 1}},
{$limit: 10}
])
仅显示分组的列。
答案 0 :(得分:0)
db.RecordLogs.aggregate([
{$match: {
$and: [
{EmployeeId : 190192},{LoggingDate : {
'$gte': ISODate("2019-06-15T04:00:00.000Z"),
'$lte': ISODate("2019-06-16T03:59:59.999Z")
}}]
}},
{$group: {
_id : {
Appname :"$AppName"
},
"EmployeeName": { "$first": "$EmployeeName"},
"AgentId": { "$first": "$AgentId"},
count : {"$sum":1}}},
{$limit: 10}
])
尝试这个问题...
答案 1 :(得分:0)
您可以使用$push
获取分组的项目
db.RecordLogs.aggregate([
{$match: {
$and: [
{EmployeeId : 102365},{LoggingDate : {
'$gte': ISODate("2019-06-15T04:00:00.000Z"),
'$lte': ISODate("2019-06-16T03:59:59.999Z")
}}]
}},
{$group: {_id : {Appname :"$AppName"},
count : {"$sum":1},
items : { $push: { "AgentId": "$AgentId", "EmployeeName": "$EmployeeName" } }
}},
{$limit: 10}
])