sql >> Database >  >> NoSQL >> MongoDB

Veldnamen van FieldPath mogen geen '.' bevatten. in $groep

Aangezien je een enkel groepsveld hebt, is de beste manier om gewoon de _id . te gebruiken groepssleutel op dat veld en maak vervolgens een ander $project pijplijn die de _id . zal hervormen sleutel uit de vorige pijplijn naar het gewenste subdocument. Bijvoorbeeld

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

Het volgende zou ook moeten werken:

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. Aangepaste deserialisatie

  2. docker-compose + django + redis - Fout 111 bij verbinding met 127.0.0.1:6379. Verbinding geweigerd

  3. God-configuratiebestand om bestaande processen te bewaken?

  4. MongoDB en samengestelde primaire sleutels