我无法使用$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}
])
仅显示分组列。
您可以使用$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}
])
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}
])
试试这个。。。