sql >> データベース >  >> NoSQL >> MongoDB

SungoクエリDistinctwithSumが機能していません

    $ groupステージには、次のプロトタイプ形式があります。

    { $group: { _id: <expression>, <field1>: { <accumulator1> : <expression1> }, ... } }
    

    あなたのfield1は時間です accumulator1は合計です 、したがって、集計は次のようになります。

    db.pms_teamleadtimesheets.aggregate(
    
      // Pipeline
      [
        // Stage 1
        {
          $match: {
          UserName:"Admin",
          FacilityID:"59a53f0c6077b2a029c52b7f",
          ProjectID:"5a042ba02af18ac8388bd3c0"
          }
        },
    
        // Stage 2
        {
          $group: {
             _id: { ProjectID: "$ProjectID",
                Task: "$Text", Phase: "$phase",
                Comments: "$Comments", 
                TaskType: "$TaskType", 
                Items: "$Items", 
                UserName: "$UserName", 
                IsBillable: "$IsBillable", 
                Date: "$StartDate"
                },
                Hours:{$sum:"$Hours" }
          }
        },
    
        // Stage 3
        {
          $project: {
           _id: 0,
           ProjectID: "$_id.ProjectID", 
           Phase: "$_id.Phase",
           Task: "$_id.Task",
           Comments: "$_id.Comments",
           TaskType: "$_id.TaskType",
           Items: "$_id.Items",
           UserName: "$_id.UserName",
           IsBillable: "$_id.IsBillable",
           Date: "$_id.Date",
           Hours:  { 
             $divide: [ "$Hours", 60 ] 
             } 
          }
        },
    
      ]
    );
    

    指定されたテストデータでの出力:

    { 
        "ProjectID" : "5a042ba02af18ac8388bd3c0", 
        "Phase" : "Analysis", 
        "Task" : "Analysis", 
        "Comments" : "2", 
        "TaskType" : "DELIVERY", 
        "Items" : "CRI", 
        "UserName" : "Admin", 
        "IsBillable" : true, 
        "Date" : "29-05-2018", 
        "Hours" : 4.0
    }
    { 
        "ProjectID" : "5a042ba02af18ac8388bd3c0", 
        "Phase" : "Analysis", 
        "Task" : "Analysis", 
        "Comments" : "8", 
        "TaskType" : "DELIVERY", 
        "Items" : "Others", 
        "UserName" : "Admin", 
        "IsBillable" : true, 
        "Date" : "28-05-2018", 
        "Hours" : 4.0
    }
    { 
        "ProjectID" : "5a042ba02af18ac8388bd3c0", 
        "Phase" : "Analysis", 
        "Task" : "Analysis", 
        "Comments" : "4", 
        "TaskType" : "DELIVERY", 
        "Items" : "Others", 
        "UserName" : "Admin", 
        "IsBillable" : true, 
        "Date" : "28-05-2018", 
        "Hours" : 4.0
    }
    

    さらにこちら をお読みください




    1. MongoDB:フィールド名がで始まるオブジェクトを検索します

    2. 動的フィールドによるMongoの並べ替え

    3. PyMongoのMongoクエリの出力でフィールドの名前を変更することは可能ですか?

    4. mongodbreplicasetの新しいメンバーがEC2で正しいディスク使用量を表示しない