2013-12-06 3 views
0

Если я посылаю это:Neo4j cypher с параметрами возвращает успех, но ничего не создает?

{ 
    "query" : "MATCH (p) WHERE p.id={id} CREATE (c {props}) CREATE UNIQUE p-[r:CHILD]->c", 
    "params" : { 
     "id" : ["{0000-0000-0000-0000}","{0000-0000-0000-0000}","{0000-0000-0000-0004}"], 
     "props" : [ { 
      "id" : "{0000-0000-0000-0004}", 
      "type": 48, 
      "title" : "TestNode" 
     },{ 
      "id" : "{0000-0000-0000-0005}", 
      "type": 49, 
      "title" : "TestNode" 
     },{ 
      "id" : "{0000-0000-0000-0006}", 
      "type": 49, 
      "title" : "TestNode" 
     }] 
    } 
} 

Через успокоительного шифровальщик апи, я вернусь был создан «успех», но ничего. Если я посылаю через это:

{ 
    "query" : "MATCH (p) WHERE p.id={id} CREATE (c {props}) CREATE UNIQUE p-[r:CHILD]->c", 
    "params" : { 
    "id" : "{0000-0000-0000-0000}", 
    "props" : [ { 
     "id" : "{0000-0000-0000-0001}", 
     "type": 48, 
     "title" : "TestNode" 
    },{ 
     "id" : "{0000-0000-0000-0002}", 
     "type": 49, 
     "title" : "TestNode" 
    } ] 
    } 
} 

Это создает двое детей 0000-0000-0000-0000, как ожидалось. Так что что-то о том, как я указываю два массива, не работает.

Я надеялся создать большие древовидные структуры, по существу указав родительский идентификатор/дочерний элемент для создания параметров. Другой вариант заключается в том, что я использую последний тип cypher и транзакционную конечную точку ... но я просто не уверен, что я делаю неправильно в первом. Любые советы очень ценятся.

ответ

2

Вы, вероятно, нужно сделать следующее:

MATCH (p) WHERE p.id IN {id} 
CREATE (c {props}) 
CREATE UNIQUE (p)-[r:CHILD]->(c) 

Оператор = является точное сравнение.

+0

Я хочу, чтобы это было точное сравнение. Он должен найти нужного родителя ... – gremwell

+0

Правильно, но у вас есть массив. Дайте ему один идентификатор, если вы хотите получить точное сравнение. Как у вас есть, он пытается найти p, где p имеет идентификатор этого значения массива. –

+0

'IN' будет делать точное сравнение для каждого значения массива,' = 'для всего массива – jjaderberg

Смежные вопросы