sql >> Databáze >  >> NoSQL >> MongoDB

Stejná chyba pole v agregaci _id

Není to nejjasněji zdokumentovaný bod. Potřebujete jinou reprezentaci Fields objekt zde, abyste správně definovali podmínku více polí:

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

To znamená pomocí Fields.field definice, která má „jméno“ a „cíl“, aby byla správně interpretována. Použití prostých řetězců bude mít za následek výchozí akci odstranění všeho až do poslední "tečky" v názvu pole a podle vaší chyby jsou obě to samé. Zadáním v tomto formuláři sdělíte tvůrci, jak chcete, aby se s ním správně zacházelo.

Což v podstatě serializuje $group jako:

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

Což je to, co chcete.




  1. Analyzujte JSON do dokumentu MONGODB

  2. MongoDB:ovlivňuje velikost dokumentu výkon dotazu?

  3. Jak zabránit _t a _v při vkládání do MongoDB?

  4. Nasazení aplikace node js, která používá mongo db na aws