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

Lược đồ đúng MongoDB cho dữ liệu tổng hợp

Bạn nên cấu trúc lại giản đồ trong Phương pháp 2 để tuân theo lược đồ này:

/* 0 */
{
    "_id" : ObjectId("5577fd322ab13c8cacdd0e70"),
    "order_id" : "VjprK",
    "user_id" : "777",
    "data" : [ 
        {
            "order_date" : ISODate("2015-04-18T08:57:42.514Z"),
            "amount" : 100
        }, 
        {
            "order_date" : ISODate("2015-04-19T08:57:42.514Z"),
            "amount" : 200
        }, 
        {
            "order_date" : ISODate("2015-04-20T08:57:42.514Z"),
            "amount" : 300
        }, 
        {
            "order_date" : ISODate("2015-04-21T08:57:42.514Z"),
            "amount" : 400
        }
    ]
}

mà sau đó bạn có thể tổng hợp với một phạm vi ngày nhất định, chẳng hạn như từ 2015-04-18 đến 2015-04-19 . Hãy xem xét đường dẫn sau:

var start = new Date(2015, 3, 18),
    end = new Date(2015, 3, 20);

db.orders.aggregate([
    {
        "$match": {
            "user_id": "777",
            "data.order_date": {
                "$gte": start,
                "$lt": end
            }
        }
    },
    {
        "$unwind": "$data"
    },
    {
        "$match": {
            "data.order_date": {
                "$gte": start,
                "$lt": end
            }
        }
    },
    {
        "$group": {
            "_id": "$user_id",
            "total": {
                "$sum": "$data.amount"
            }
        }
    }    
])

Đầu ra mẫu

/* 0 */
{
    "result" : [ 
        {
            "_id" : "777",
            "total" : 300
        }
    ],
    "ok" : 1
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Viết nhật ký MongoDB có đảm bảo độ bền không?

  2. Làm cách nào để thiết lập MongoDB trên máy chủ Node.js bằng node-mongodb-native trong môi trường EC2?

  3. ScaleGrid thông báo dịch vụ lưu trữ MongoDB ở Canada

  4. Không thể tạo chỉ mục trong mongodb, khóa quá lớn để lập chỉ mục

  5. Cách tính tổng giá trị của một khóa trên tất cả các tài liệu trong bộ sưu tập MongoDB