我无法使用$ project获取所需的列。以下是我的查询

时间:2019-10-24 13:13:27

标签: 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}
])

仅显示分组的列。

2 个答案:

答案 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}
])