Как передать свойство datetime при создании узлов из списка записей? - PullRequest
0 голосов
/ 26 мая 2018

Я оцениваю Neo4j и Cypher для использования в производственном программном обеспечении, я переношу данные с сервера SQL, но для этого я не использую команду LOADCSV cypher, так как мне нужно больше контроля над созданными узлами и связями,То, что я делаю сейчас, похоже на следующее:

{"props": [{"name": "Andres", "position": "Developer", "date": "2018-01-01 "}, {" name ":" Michael "," position ":" Developer "}]}

UNWIND $ реквизиты AS map CREATE (n: Person) SET n = map

и то, что я пытаюсь достичь, это иметь свойство date для правильного типа данных (datetime).Есть ли способ сказать Cypher, чтобы проанализировать это поле как datetime?

ПРИМЕЧАНИЕ. Я уже попробовал подход "SET n.Date = datetime (map.date)", но при этом добавляется свойство Date.ко второй записи, где я не нуждаюсь.

Кстати, я действительно люблю работать с Neo4j;)

1 Ответ

0 голосов
/ 26 мая 2018

Вы можете использовать тот факт, что если значение присваивания равно NULL, то свойство не создается и не удаляется:

WITH [ { name: "Andres",  position: "Developer", date: "2018-01-01" }, 
       { name: "Michael", position: "Developer" } ] AS props
UNWIND props AS map CREATE (n:Person) 
SET n = map, 
    n.date = CASE WHEN n.date IS NULL THEN NULL ELSE datetime(n.date) END
RETURN n
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...