MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Ten sam błąd pola w agregacji _id

Nie najjaśniejszy udokumentowany punkt. Potrzebujesz innej reprezentacji Fields obiekt tutaj, aby poprawnie zdefiniować warunek wielu pól:

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 jest za pomocą Fields.field definicja, która ma „nazwę” i „cel”, dzięki czemu jest poprawnie interpretowana. Używanie zwykłych ciągów spowoduje po prostu domyślną akcję usuwania wszystkiego, aż do ostatniej „kropki” w nazwie pola, i zgodnie z twoim błędem są to to samo. Określenie w tym formularzu mówi konstruktorowi, jak chcesz, aby było to właściwie obsługiwane.

Który zasadniczo serializuje $group jako:

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

Tego właśnie chcesz.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak grupować zagnieżdżone posty za pomocą frameworka agregacji MongoDB?

  2. Jakie znaczenie ma kolejność indeksów złożonych w MongoDB pod względem wydajności?

  3. Pobierz DateTime z kolekcji mongo za pomocą sterownika c#

  4. $projection vs $elemMatch

  5. Mongo uruchamiania PHP:Nie można zainicjować modułu