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

MongoDB Aggregation PHP、時間ごとのグループ化

    表示されている結果は作成されませんが、client_idを含める必要があります。 $project$groupで使用できるようにするための演算子 オペレーター。

    '$project' => array(
      'client_id' => 1,
      'hour' => array(
        'years' => array( '$year' => '$ts' ),
        'months' => array( '$month' => '$ts' ),
        'days' => array( '$dayOfMonth' => '$ts' ),
        'hours' => array( '$hour' => '$ts' ),
      )
    ),
    

    その変更を行った後、同等のシェルが機能しました:

    db.test.aggregate(
        { $project: {
            hour: {
                years: {$year: '$ts'},
                months: {$month: '$ts'},
                days: {$dayOfMonth: '$ts'},
                hours: {$hour: '$ts'}
            },
            client_id: '$client_id'
        }},
        { $group: {
            _id: { client_id: '$client_id', hour: '$hour' },
            number: { $sum: 1}
        }})
    

    返された:

    {
      "result": [
        {
          "_id": {
            "client_id": "12345667889",
            "hour": {
              "years": 2013,
              "months": 1,
              "days": 2,
              "hours": 7
            }
          },
          "number": 1
        }
      ],
      "ok": 1
    }
    



    1. MongoDBにMMAPv1ストレージエンジンを引き続き使用する必要がある理由

    2. マングースはリクエストオブジェクトをミドルウェアに渡します

    3. Node.jsを使用してMongoDBでcursor.forEach()を使用するにはどうすればよいですか?

    4. MongoDB:ネストされた配列にサブ配列が含まれているかどうかの確認