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

JSON път родителски обект или еквивалентна MongoDB заявка

Малко след като добавих собствената си награда, разбрах решението. Моят проблем има същата основна структура, която е родителски идентификатор и няколко N дъщерни двойки ключ/стойност за оценки (качество, стойност и т.н...).

Първо, ще ви е необходима стъпка за въвеждане на JSON, която получава SKU, име и масив size_break_costs, всички като низове. Важната част е, че size_break_costs е низ и всъщност е просто низов JSON масив. Уверете се, че под раздела „Съдържание“ на входа на JSON е отметнато „Игнориране на липсващ път“, в случай че получите такъв с празен масив или полето липсва по някаква причина.

За вашите полета използвайте:

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

Добавих блок „Филтриране на редове“ след тази стъпка с условието „SizeBreakCosts IS NOT NULL“, който след това се предава на втори блок за въвеждане на JSON. Този втори JSON блок ще трябва да поставите отметка на „Източникът е дефиниран в поле?“ и да зададете стойността на „Получаване на източник от поле“ на „SizeBreakCosts“ или каквото и да сте го нарекли в първия блок за въвеждане на JSON.

Отново се уверете, че „Игнориране на липсващ път“ е отметнато, както и „Игнориране на празен файл“. От този блок ще искаме да получим две полета. Вече ще имаме ProductSKU и ProductName с всеки предаден ред и тази втора стъпка за въвеждане на JSON допълнително ще го раздели на колкото редове има във входния JSON на SizeBreakCosts. За полета използвайте:

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

Както можете да видите, тези пътища използват "$.[*].FieldName", тъй като JSON низът, който предадохме, има масив като основен елемент, така че получаваме всеки елемент в този масив и анализираме неговото количество и размер.

Сега всеки ред трябва да има SKU и име от родителския обект, както и количеството и размера от всеки дъщерен обект. Изхвърляйки този пример в текстов файл, получих:

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. Конвертиране на JSON структура в BasicDBObject

  2. Битката на базите данни NoSQL - Сравняване на функциите NoSQL на MongoDB и MSSQL

  3. имам нужда от sbt 0.11.2, за да създам приложението mongo auth за повдигане

  4. Каква е максималната дълбочина на вградените документи, разрешена в MongoDb?

  5. Добавете водещи нули в SQL