MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Грешка в същото поле в агрегиране _id

Не е най-ясната документирана точка. Имате нужда от различно представяне на Fields обект тук, за да дефинирате правилно вашето условие за множество полета:

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

Това е използването на Fields.field дефиниция, която има "име" и "цел", така че да се интерпретира правилно. Използването на обикновени низове просто ще доведе до действието по подразбиране за премахване на всичко до последната "точка" в името на полето и според вашата грешка и двете са едно и също нещо. Посочването в този формуляр казва на създателя как искате да бъде обработен правилно.

Което основно сериализира $group като:

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

Което е, което искате.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да направя заявка за масив от речници в MongoDB?

  2. Java Future - Spring Authentication е null в AuditorAware

  3. Докер контейнер mongod грешка при стартиране чрез ssh

  4. Как да извлечете отделни ключове в обект в MongoDB

  5. При създаване на първи администраторски потребител на mongdb клъстер се получава грешка, не може да се добави потребител:не е упълномощен от администратора да изпълни команда