sql >> Database teknologi >  >> NoSQL >> MongoDB

Samme feltfejl i aggregering _id

Ikke det klarest dokumenterede punkt. Du skal bruge en anden repræsentation af Fields objekt her for at definere din tilstand med flere felter korrekt:

Aggregation aggregation = newAggregation(
    match(criteria),
    unwind("kademeler"),
    match(criteria),
    group(
        Fields.from(
            Fields.field("name1", "kademeler.isemirleri.isemriKaynagi.name"),
            Fields.field("name2", "kademeler.isemirleri.isemriSebebi.name")
        )).count().as("etkilenenAboneSayisi")
);

Det er ved at bruge Fields.field definition, som har et "navn" og et "mål", så det fortolkes korrekt. Brug af almindelige strenge vil blot resultere i standardhandlingen med at fjerne alt indtil den sidste "prik" i feltnavnet, og i henhold til din fejl er disse begge de samme ting. Angivelse i denne formular fortæller bygherren, hvordan du ønsker det skal håndteres korrekt.

Som dybest set serialiserer $group som:

{ "$group": {
    "_id": {
        "name1": "$kademeler.isemirleri.isemriKaynagi.name",
        "name2": "$kademeler.isemirleri.isemriSebebi.name"
    },
    "etkilenenAboneSayisi": { "$sum": 1 }
}}

Hvilket er, hvad du ønsker.




  1. mgo - forespørgselsydeevne virker konsekvent langsom (500-650ms)

  2. Tilføj udløb til Redis Cache

  3. Sådan indstilles hash-nøgleudløb i redis i henhold til eksistensen af ​​nøglen

  4. Sådan administreres konfigurationsskabeloner til dine databaser med ClusterControl