我无法使用$project获取所需的列.以下是我的疑问

  • 本文关键字:project 获取 mongodb
  • 更新时间 :
  • 英文 :


我无法使用$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}
])

试试这个。。。

最新更新