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

Tổng hợp Mongo:phân vùng các giá trị thành các nhóm (theo phân vùng)

Giả sử đây là đầu ra hiện tại của tổng hợp của bạn:

{
    "_id" : null,
    "datesWithPartitions" : [
        {
            "date" : ISODate("2019-04-12T18:30:00Z"),
            "partition" : 0
        },
        {
            "date" : ISODate("2019-04-12T20:00:00Z"),
            "partition" : 1
        },
        {
            "date" : ISODate("2019-04-12T20:10:00Z"),
            "partition" : 1
        },
        {
            "date" : ISODate("2019-04-12T21:00:00Z"),
            "partition" : 2
        },
        {
            "date" : ISODate("2019-04-12T21:15:00Z"),
            "partition" : 2
        },
        {
            "date" : ISODate("2019-04-12T21:45:00Z"),
            "partition" : 3
        },
        {
            "date" : ISODate("2019-04-12T23:00:00Z"),
            "partition" : 4
        }
    ]
}

Để nhận dữ liệu ở định dạng bạn cần, bạn cần thêm các bước tổng hợp sau:

db.col.aggregate([
    {
        $unwind: "$datesWithPartitions"
    },
    {
        $group: {
            _id: "$datesWithPartitions.partition",
            numEvents: { $sum: 1 },
            startDate: { $min: "$datesWithPartitions.date" },
            endDate: { $max: "$datesWithPartitions.date" }
        }
    },
    {
        $project: {
            _id: 0,
            partition: "$_id",
            startDate: 1,
            endDate: 1,
            numEvents: 1
        }
    }
])

$ thư giãn sẽ trả về một ngày cho mỗi tài liệu và sau đó bạn có thể áp dụng $ group với $ min $ max để nhận ranh giới phân vùng và $ sum để đếm các phần tử phân vùng




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách sử dụng $ in hoặc $ nin trong tổng hợp mongo $ group $ cond

  2. Làm cách nào để xóa các bản sao dựa trên một khóa trong Mongodb?

  3. Thiết lập phần mở rộng Mongo cho Axon Framework khi khởi động vào mùa xuân

  4. Cách theo dõi các yêu cầu MongoDB từ một ứng dụng bảng điều khiển

  5. Spring-data-mongo không thể khởi tạo java.util.List bằng cách sử dụng Constructor