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

Nieprawidłowa liczba z zapytania agregującego

Problem polega na tym, że tutaj:

"sp": {
    $split: [
        "$sourceList.source",
        "\n"
    ],
    $split: [
        "$sourceList.source",
        " "
    ]
}

tylko drugi $split zostaje wykonany przez MongoDB i zwraca hello\nworld jako jeden ciąg. Nie ma takiej „kaskadowej” składni, ponieważ jest to po prostu ten sam klucz JSON $split więc ostatnie wygrywa.

Aby to naprawić, możesz użyć $reduce zastosować $split przez białe znaki na tablicy podzielonej według \n wartości:

{
    $project: {
        "sp": {
            $reduce: {
                input: { $split: [ "$sourceList.source", "\n" ] },
                initialValue: [],
                in: { $concatArrays: [ "$$value", { $split: [ "$$this", " " ] } ] }
            }
        }
    }
}

Plac zabaw Mongo



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Ustaw programowo konwerter MongoDb

  2. Czy za pomocą Mongoose można utworzyć nową bazę danych w MongoDB?

  3. Jak sortować wyniki według długości łańcucha w MongoDB

  4. Wykluczanie $fields podczas pobierania dokumentu z MongoDB

  5. Częściowa aktualizacja poddokumentu za pomocą nodejs/mongoose