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

Obiekt nadrzędny ścieżki JSON lub równoważne zapytanie MongoDB

Wkrótce po tym, jak dodałem własną nagrodę, znalazłem rozwiązanie. Mój problem ma tę samą podstawową strukturę, która jest identyfikatorem rodzica i pewną liczbą N par klucz/wartość dla ocen (jakość, wartość itp.).

Najpierw potrzebujesz kroku wejściowego JSON, który pobiera tablicę SKU, Name i size_break_costs, wszystkie jako ciągi. Ważną częścią jest to, że size_break_costs jest ciągiem znaków i jest po prostu ciągiem tablicy JSON. Upewnij się, że na karcie Treść danych wejściowych JSON zaznaczona jest opcja „Ignoruj ​​brakującą ścieżkę”, na wypadek gdyby pojawiła się tablica z pustą tablicą lub z jakiegoś powodu brakuje pola.

Dla swoich pól użyj:

Name           | Path               | Type
ProductSKU     | $.sku              | String
ProductName    | $.name             | String
SizeBreakCosts | $.size_break_costs | String

Po tym kroku dodałem blok „Filtruj wiersze” z warunkiem „SizeBreakCosts IS NOT NULL”, który jest następnie przekazywany do drugiego bloku wejściowego JSON. W tym drugim bloku JSON musisz sprawdzić „Źródło jest zdefiniowane w polu?” i ustawić wartość „Pobierz źródło z pola” na „SizeBreakCosts” lub cokolwiek nazwałeś w pierwszym bloku danych wejściowych JSON.

Ponownie upewnij się, że zaznaczono opcję „Ignoruj ​​brakującą ścieżkę”, a także „Ignoruj ​​pusty plik”. Z tego bloku będziemy chcieli uzyskać dwa pola. Będziemy już mieć ProductSKU i ProductName z każdym przekazanym wierszem, a ten drugi krok wejściowy JSON spowoduje dalsze podzielenie go na dowolną liczbę wierszy w wejściowym pliku JSON SizeBreakCosts. W przypadku pól użyj:

Name     | Path           | Type
Quantity | $.[*].quantity | Integer
Size     | $.[*].size     | String

Jak widać, te ścieżki używają „$.[*].FieldName”, ponieważ przekazany przez nas ciąg JSON ma tablicę jako element główny, więc pobieramy każdy element z tej tablicy i analizujemy jego ilość oraz rozmiar.

Teraz każdy wiersz powinien mieć SKU i nazwę z obiektu nadrzędnego oraz ilość i rozmiar z każdego obiektu podrzędnego. Zrzucając ten przykład do pliku tekstowego, mam:

ProductSKU;ProductName;Size;Quantity
SK3579;Authority;S; 80
SK3579;Authority;M; 14
SK3579;Authority;L; 55



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sprawdź, czy istnieje baza danych mongodb?

  2. Jak włączyć ReadConcernMajority w MongoDB 3.6.3?

  3. Czym MongoDB różni się od bazy danych SQL

  4. Jak zainstalować MongoDB

  5. Rusztowania Yeoman, Mongoose i MongoDB