MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB Aggregation PHP, Group by Hours

Nó sẽ không tạo ra kết quả mà bạn đang thấy, nhưng bạn cần phải bao gồm client_id trong $project của bạn để nó có sẵn cho $group nhà điều hành.

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

Tương đương với shell đã hoạt động sau khi tôi thực hiện thay đổi đó:

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}
    }})

đã trả lại:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để lưu trữ kết quả truy vấn trong db tạm thời?

  2. Cách bảo mật cơ sở dữ liệu nguồn mở của bạn với ClusterControl

  3. MongoEngine chỉ định tùy chọn đọc trên truy vấn

  4. Lỗi phân tích cú pháp:lỗi cú pháp, '}' không mong muốn trong C:\ xampp \ htdocs \ lib \ autors.php trên dòng 8

  5. thư mục cài đặt mặc định cho mongodb ở đâu