Я пытаюсь импортировать данные из MongoDB в реляционный DB (SQL Server).JSON импортирует вложенный объект в реляционные таблицы с Talend
У меня нет доступа к компонентам MongoDB, поэтому я запрашиваю свою коллекцию с помощью драйвера mongo java в компоненте tJava.
я получаю:
Список < DBObject>
который я посылаю к tExtractJSONFields
Объект моей коллекции выглядит следующим образом:
[
{
"_id":{
"$oid":"1564t8re13e4ter86"
},
"object":{
"shop":"shop1",
"domain":"Divers",
"sell":[
{
"location":{
"zipCode":"58000",
"city":"NEVERS"
},
"properties":{
"description":"ddddd!!!!",
"id":"f1re67897116fre87"
},
"employee":[
{
"name":"employee1",
"id":"245975"
},
{
"name":"employee2",
"id":"458624"
}
],
"customer":{
"name":"Customer1",
"custid":"test_réf"
}
}
]
}
}
]
Для продажи у меня может быть несколько сотрудников. У меня есть массив сотрудников, и я хочу сохранить пострадавшего сотрудника в другой таблице. Поэтому я хотел бы иметь 2 таблицы:
Sell
oid | shop | domain | zipCode | ...
1564t8re13e4ter86 | shop1 | Divers | 58000 | ...
Affected employee
employee_id | employee_name | oid
245975 | employee1 | 1564t8re13e4ter86
458624 | employee2 | 1564t8re13e4ter86
Так что я хочу, чтобы петля на массиве сотрудника, с запросом Jsonpath:
"$ [*] object.sell [0] .employee"
Проблема в том, что, делая это, я не могу иметь object_id. Кажется, что я не могу получить атрибут на родительском узле, если я определяю свой запрос Jsonpath таким образом.
Я также видел, что я могу сделать, как в следующей ссылке: http://techpoet.blogspot.ro/2014/06/dealing-with-nested-documents-in.html?utm_content=buffer02d59&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer
Но я не понимаю, когда он получить object_id на более низких уровнях.
Как я могу это сделать?
Привет, мне кажется, что Xpath может быть лучшим вариантом, поскольку у вас может быть родительский узел, использующий Xpath (я думаю, что это точка или двойная точка для родителя). Идентификатор объекта будет повторяться для каждой строки, но вы его получите. –
К сожалению, Xpath не работает для этого JSON. Я не понимаю, почему, но я пробовал все виды запросов xpath, но без каких-либо успехов ... –