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

Tên trường FieldPath không được chứa '.' trong nhóm $

Vì bạn có một trường nhóm duy nhất, cách tốt nhất là chỉ sử dụng _id khóa nhóm trên trường đó và sau đó tạo một $project khác đường ống sẽ định hình lại _id từ đường dẫn trước đó vào tài liệu con mong muốn mà bạn muốn. Ví dụ

db.analytics.aggregate([
    {
        "$match": {
            "eventArgs.type": 'touchstart', 
            "eventType": 'mousedown', 
            "creationDateTime": { "$gte": ISODate("2017-02-24T000:00:00.000Z") } 
        }
    },
    {
        "$group": {
            "_id": "$eventArgs.elementId",
            "count": { "$sum": 1 }
        }
    },
    {
        "$project": {
            "eventsArgs.elementId": "$_id",
            "count": 1, "_id": 0
        }
    }
]);

Những điều sau đây cũng sẽ hoạt động:

db.analytics.aggregate([
    {
        "$match": {
            "eventArgs.type": 'touchstart', 
            "eventType": 'mousedown', 
            "creationDateTime": { "$gte": ISODate("2017-02-24T000:00:00.000Z") } 
        }
    },
    {
        "$group": {
            "_id": {
               "eventArgs": {
                   "elementId": "$eventArgs.elementId"
               }
            },
            "count": { "$sum": 1 }
        }
    }
]);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lỗi Tornado:[Errno 24] Lỗi quá nhiều tệp đang mở

  2. Cách nhanh nhất để sao chép một bộ sưu tập trong cùng một cơ sở dữ liệu là gì?

  3. Cách tổ chức mối quan hệ nhiều đến nhiều trong MongoDB

  4. Mongodb khớp các ký tự có dấu làm ký tự cơ bản

  5. Mức độ không an toàn của MongoDB và Cách tránh chúng