MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Имената на полета FieldPath не може да съдържат „.“ в $група

Тъй като имате едно поле за група, най-добрият начин е просто да използвате _id групов ключ в това поле и след това създайте друг $project тръбопровод, който ще промени формата на _id ключа от предишния конвейер в желания поддокумент, който искате. Например

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

Следното също трябва да работи:

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. Как да актуализирам частично обект в MongoDB, така че новият обект да се наслагва / слее със съществуващия

  2. Бази данни за документи:излишни данни, препратки и т.н. (специално MongoDB)

  3. Фатална грешка - класът 'Mongo' не е намерен

  4. MongoDB с Mongoid в Rails – геопространствено индексиране

  5. MongoDB, премахнете обекта от масива