У меня есть набор данных JSON статей и где они были опубликованы, например:
{"id": "1", "title": "Paper1", "venue": {"raw": "Journal of Cell Biology"}}
{"id": "2", "title": "Paper2", "venue": {"raw": "Nature"}}
{"id": "3", "title": "Paper3", "venue": {"raw": "Journal of Histochemistry and Cytochemistry"}}
Я хочу создать узлы только для статей, опубликованных в определенном журнале, скажем, Nature
, и добавить связь между узлом статьи и существующим узлом журнала. То есть я хочу создать ноды только для строк данных с определенным значением для ключа venue.raw
.
Код, с которым я работаю, приведен ниже. Я думаю, мне нужно добавить некоторую логику в часть apoc.load.json
, чтобы она соответствовала только данным, где $.venue.raw == 'Nature'
:
CALL apoc.load.json('file:/example.txt', '$.venue.raw') YIELD value AS q
CREATE (p:Quanta {id:q.id, title:q.title})
WITH q, p
UNWIND q.venue as venue
MATCH (v:Venue {name: venue.raw})
CREATE (p)-[:PUBLISHED_IN_VENUE]->(v)
Есть ли способ изменить это, чтобы импортировать только соответствующие данные?
Любая помощь будет принята с благодарностью!