sql >> Database >  >> NoSQL >> MongoDB

Zelfde veldfout in aggregatie _id

Niet het duidelijkst gedocumenteerde punt. U heeft een andere weergave nodig van de Fields object hier om uw conditie met meerdere velden correct te definiëren:

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")
);

Dat is het gebruik van het Fields.field definitie die een "naam" en een "doel" heeft, zodat deze correct wordt geïnterpreteerd. Het gebruik van gewone tekenreeksen resulteert gewoon in de standaardactie om alles te verwijderen tot de laatste "punt" in de veldnaam, en volgens uw fout zijn deze beide hetzelfde. Specificeren in dit formulier vertelt de bouwer hoe u wilt dat het correct wordt afgehandeld.

Wat in feite de $group . rangschikt als:

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

Dat is wat je wilt.




  1. maak snel een voorbeeld-hbase-tabel

  2. python-kolf hoe een dynamische parameter door te geven aan een decorateur

  3. Ondersteunt azure zaken als mongodb en redis?

  4. Hoe MongoDB Change Stream 'OperationType' in het C#-stuurprogramma instellen?