Neo4j. Dynamic query with multiple filters on nodes
up vote
0
down vote
favorite
I have nodes like this and I need apply filter to them
{
"value": "ma",
"object_field_id": 2293
}
{
"value": 2,
"object_field_id": 2294
}
MATCH (:UserData {user_id:19})-[:CARD]-(c:Card)-[:FIELD_GROUP]-()-[:FIELD]-(fi:Field)
WHERE fi.object_field_id IN [23,24]
AND (fi.value=~('(?iu).*149.*')
AND fi.value=~('(?iu).*gb.*'))
RETURN c
but it doesn't work with AND
Where is my mistake?
filter neo4j cypher
|
show 6 more comments
up vote
0
down vote
favorite
I have nodes like this and I need apply filter to them
{
"value": "ma",
"object_field_id": 2293
}
{
"value": 2,
"object_field_id": 2294
}
MATCH (:UserData {user_id:19})-[:CARD]-(c:Card)-[:FIELD_GROUP]-()-[:FIELD]-(fi:Field)
WHERE fi.object_field_id IN [23,24]
AND (fi.value=~('(?iu).*149.*')
AND fi.value=~('(?iu).*gb.*'))
RETURN c
but it doesn't work with AND
Where is my mistake?
filter neo4j cypher
If this were my problem I would break it down into smaller parts until I found the part that did not work, fix it then put the working parts back together until the entire query works.
– Guy Coder
Nov 19 at 15:32
Screen shots are not that helpful when it is possible to add the code here so that we may recreate a portion of the database and test it on our system.
– Guy Coder
Nov 19 at 15:34
Are you sure that you want find nodes that have avalueproperty that containskonstand a2? None of your example match this condition ...
– logisima
Nov 19 at 15:40
Ok i'll build test data
– MindSupport
Nov 19 at 17:18
1
Those parameters that you use in the query (2293, 2294, '.*konst.*') are missing in the test data.
– stdob--
Nov 20 at 12:27
|
show 6 more comments
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have nodes like this and I need apply filter to them
{
"value": "ma",
"object_field_id": 2293
}
{
"value": 2,
"object_field_id": 2294
}
MATCH (:UserData {user_id:19})-[:CARD]-(c:Card)-[:FIELD_GROUP]-()-[:FIELD]-(fi:Field)
WHERE fi.object_field_id IN [23,24]
AND (fi.value=~('(?iu).*149.*')
AND fi.value=~('(?iu).*gb.*'))
RETURN c
but it doesn't work with AND
Where is my mistake?
filter neo4j cypher
I have nodes like this and I need apply filter to them
{
"value": "ma",
"object_field_id": 2293
}
{
"value": 2,
"object_field_id": 2294
}
MATCH (:UserData {user_id:19})-[:CARD]-(c:Card)-[:FIELD_GROUP]-()-[:FIELD]-(fi:Field)
WHERE fi.object_field_id IN [23,24]
AND (fi.value=~('(?iu).*149.*')
AND fi.value=~('(?iu).*gb.*'))
RETURN c
but it doesn't work with AND
Where is my mistake?
filter neo4j cypher
filter neo4j cypher
edited Nov 20 at 14:15
asked Nov 19 at 12:56
MindSupport
13
13
If this were my problem I would break it down into smaller parts until I found the part that did not work, fix it then put the working parts back together until the entire query works.
– Guy Coder
Nov 19 at 15:32
Screen shots are not that helpful when it is possible to add the code here so that we may recreate a portion of the database and test it on our system.
– Guy Coder
Nov 19 at 15:34
Are you sure that you want find nodes that have avalueproperty that containskonstand a2? None of your example match this condition ...
– logisima
Nov 19 at 15:40
Ok i'll build test data
– MindSupport
Nov 19 at 17:18
1
Those parameters that you use in the query (2293, 2294, '.*konst.*') are missing in the test data.
– stdob--
Nov 20 at 12:27
|
show 6 more comments
If this were my problem I would break it down into smaller parts until I found the part that did not work, fix it then put the working parts back together until the entire query works.
– Guy Coder
Nov 19 at 15:32
Screen shots are not that helpful when it is possible to add the code here so that we may recreate a portion of the database and test it on our system.
– Guy Coder
Nov 19 at 15:34
Are you sure that you want find nodes that have avalueproperty that containskonstand a2? None of your example match this condition ...
– logisima
Nov 19 at 15:40
Ok i'll build test data
– MindSupport
Nov 19 at 17:18
1
Those parameters that you use in the query (2293, 2294, '.*konst.*') are missing in the test data.
– stdob--
Nov 20 at 12:27
If this were my problem I would break it down into smaller parts until I found the part that did not work, fix it then put the working parts back together until the entire query works.
– Guy Coder
Nov 19 at 15:32
If this were my problem I would break it down into smaller parts until I found the part that did not work, fix it then put the working parts back together until the entire query works.
– Guy Coder
Nov 19 at 15:32
Screen shots are not that helpful when it is possible to add the code here so that we may recreate a portion of the database and test it on our system.
– Guy Coder
Nov 19 at 15:34
Screen shots are not that helpful when it is possible to add the code here so that we may recreate a portion of the database and test it on our system.
– Guy Coder
Nov 19 at 15:34
Are you sure that you want find nodes that have a
value property that contains konst and a 2 ? None of your example match this condition ...– logisima
Nov 19 at 15:40
Are you sure that you want find nodes that have a
value property that contains konst and a 2 ? None of your example match this condition ...– logisima
Nov 19 at 15:40
Ok i'll build test data
– MindSupport
Nov 19 at 17:18
Ok i'll build test data
– MindSupport
Nov 19 at 17:18
1
1
Those parameters that you use in the query (2293, 2294, '.*konst.*') are missing in the test data.
– stdob--
Nov 20 at 12:27
Those parameters that you use in the query (2293, 2294, '.*konst.*') are missing in the test data.
– stdob--
Nov 20 at 12:27
|
show 6 more comments
3 Answers
3
active
oldest
votes
up vote
0
down vote
Here Is Query data for to build relations and nodes:
CREATE (a:UserData {user_id: 19})-[r:CARD]->(b:Card {name: "card"})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1290})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1280})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1270})
WITH count(*) as dummy
MATCH (u:FieldUserGroup), (c:Card) CREATE (c)-[:FIELD_GROUP]->(u)
WITH count(*) as dummy
create (f:Field {value: "jerry", object_field_id: 11})
WITH count(*) as dummy
create (f:Field {value: 2, object_field_id: 12})
WITH count(*) as dummy
create (f:Field {value: "tom", object_field_id: 13})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1290}), (f2:Field) CREATE (f)-[:FIELD]->(f2)
WITH count(*) as dummy
CREATE (c:Field {value: "jack", object_field_id: 14})
WITH count(*) as dummy
CREATE (c:Field {value: 1234, object_field_id: 15})
WITH count(*) as dummy
CREATE (c:Field {value: "robin", object_field_id: 16})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1280}), (c:Field {value: "jack", object_field_id: 14}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1280}), (c:Field {value: 1234, object_field_id: 15}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1280}), (c:Field {value: "robin", object_field_id: 16}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (c:Field {value: "zazaza", object_field_id: 17})
WITH count(*) as dummy
CREATE (c:Field {value: 6578970, object_field_id: 18})
WITH count(*) as dummy
CREATE (c:Field {value: "hamlet", object_field_id: 19})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1270}), (c:Field {value: "zazaza", object_field_id: 17}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1270}), (c:Field {value: 6578970, object_field_id: 18}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1270}), (c:Field {value: "hamlet", object_field_id: 19}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (r:card {name: "card2"})
WITH count(*) as dummy
MATCH (r:card {name: "card2"}), (a:UserData {user_id: 19}) CREATE (a)-[:CARD]->(r)
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1260})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1250})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1240})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (r:card {name: "card2"}) CREATE (r)-[:CARD]->(f)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (r:card {name: "card2"}) CREATE (r)-[:CARD]->(f)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (r:card {name: "card2"}) CREATE (r)-[:CARD]->(f)
WITH count(*) as dummy
CREATE (c:Field {value: "some value", object_field_id: 20})
WITH count(*) as dummy
CREATE (c:Field {value: "more value", object_field_id: 21})
WITH count(*) as dummy
CREATE (c:Field {value: "this is insane!", object_field_id: 22})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (c:Field {object_field_id: 20}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (c:Field {object_field_id: 21}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (c:Field {object_field_id: 22}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (c:Field {value: 14948576, object_field_id: 23})
WITH count(*) as dummy
CREATE (c:Field {value: "GB", object_field_id: 24})
WITH count(*) as dummy
CREATE (c:Field {value: 1, object_field_id: 25})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (c:Field {object_field_id: 23}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (c:Field {object_field_id: 24}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (c:Field {object_field_id: 25}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (c:Field {value: 2, object_field_id: 26})
WITH count(*) as dummy
CREATE (c:Field {value: "Marky", object_field_id: 27})
WITH count(*) as dummy
CREATE (c:Field {value: "Tom Born", object_field_id: 28})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (c:Field {object_field_id: 26}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (c:Field {object_field_id: 27}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (c:Field {object_field_id: 28}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
add a comment |
up vote
0
down vote
UPD:
Here is query that works but only in one side by FieldUserGroup
MATCH (c:Card)-[:FIELD_GROUP]-()-[:FIELD]-(fi:Field) where (any(prop in keys(fi) where fi[prop] =~ '(?iu).*tom.*'))
return c
add a comment |
up vote
0
down vote
I cleaned up your Cypher queries to create the database, hopefully I didn't make any mistakes. You will notice that I removed all of the WITH count(*) as dummy as they are not needed and only cause errors. For the statements that have both MATCH and CREATE they needed a WITH. I reordered and grouped similar statements so that they can all be done in one statement, e.g. end with ;.
CREATE (:UserData {user_id: 19});
MATCH (n:UserData {user_id: 19})
WITH n
CREATE (n)-[:CARD]->(:Card {name: "card"});
CREATE (:FieldUserGroup {data_id: 1290})
CREATE (:FieldUserGroup {data_id: 1280})
CREATE (:FieldUserGroup {data_id: 1270});
MATCH (f1:FieldUserGroup {data_id: 1290}),
(f2:FieldUserGroup {data_id: 1280}),
(f3:FieldUserGroup {data_id: 1270}),
(c1:Card {name: "card"})
WITH f1,f2,f3,c1
CREATE (c1)-[:FIELD_GROUP]->(f1)
CREATE (c1)-[:FIELD_GROUP]->(f2)
CREATE (c1)-[:FIELD_GROUP]->(f3);
CREATE (:Field {value: "jerry", object_field_id: 11})
CREATE (:Field {value: 2, object_field_id: 12})
CREATE (:Field {value: "tom", object_field_id: 13})
CREATE (:Field {value: "jack", object_field_id: 14})
CREATE (:Field {value: 1234, object_field_id: 15})
CREATE (:Field {value: "robin", object_field_id: 16})
CREATE (:Field {value: "zazaza", object_field_id: 17})
CREATE (:Field {value: 6578970, object_field_id: 18})
CREATE (:Field {value: "hamlet", object_field_id: 19});
MATCH (f1:FieldUserGroup {data_id: 1290}),
(c11:Field {value: "jerry"}),
(c12:Field {value: 2}),
(c13:Field {value: "tom"}),
(f2:FieldUserGroup {data_id: 1280}),
(c21:Field {value: "jack"}),
(c22:Field {value: 1234}),
(c23:Field {value: "robin"}),
(f3:FieldUserGroup {data_id: 1270}),
(c31:Field {value: "zazaza"}),
(c32:Field {value: 6578970}),
(c33:Field {value: "hamlet"})
WITH f1,f2,f3,c11,c12,c13,c21,c22,c23,c31,c32,c33
CREATE (f1)-[:FIELD]->(c11)
CREATE (f1)-[:FIELD]->(c12)
CREATE (f1)-[:FIELD]->(c13)
CREATE (f2)-[:FIELD]->(c21)
CREATE (f2)-[:FIELD]->(c22)
CREATE (f2)-[:FIELD]->(c23)
CREATE (f3)-[:FIELD]->(c31)
CREATE (f3)-[:FIELD]->(c32)
CREATE (f3)-[:FIELD]->(c33);
MATCH (n:UserData {user_id: 19})
WITH n
CREATE (n)-[:CARD]->(:Card {name: "card2"});
CREATE (:FieldUserGroup {data_id: 1240})
CREATE (:FieldUserGroup {data_id: 1250})
CREATE (:FieldUserGroup {data_id: 1260});
MATCH (f1:FieldUserGroup {data_id: 1240}),
(f2:FieldUserGroup {data_id: 1250}),
(f3:FieldUserGroup {data_id: 1260}),
(c1:Card {name: "card2"})
WITH f1,f2,f3,c1
CREATE (c1)-[:FIELD_GROUP]->(f1)
CREATE (c1)-[:FIELD_GROUP]->(f2)
CREATE (c1)-[:FIELD_GROUP]->(f3);
CREATE (:Field {value: "some value", object_field_id: 20})
CREATE (:Field {value: "more value", object_field_id: 21})
CREATE (:Field {value: "this is insane!", object_field_id: 22})
CREATE (:Field {value: 14948576, object_field_id: 23})
CREATE (:Field {value: "GB", object_field_id: 24})
CREATE (:Field {value: 1, object_field_id: 25})
CREATE (:Field {value: 2, object_field_id: 26})
CREATE (:Field {value: "Marky", object_field_id: 27})
CREATE (:Field {value: "Tom Born", object_field_id: 28});
MATCH (f1:FieldUserGroup {data_id: 1240}),
(c11:Field {value: 2, object_field_id: 26}),
(c12:Field {value: "Marky"}),
(c13:Field {value: "Tom Born"}),
(f2:FieldUserGroup {data_id: 1250}),
(c21:Field {value: 14948576}),
(c22:Field {value: "GB"}),
(c23:Field {value: 1}),
(f3:FieldUserGroup {data_id: 1260}),
(c31:Field {value: "some value"}),
(c32:Field {value: "more value"}),
(c33:Field {value: "this is insane!"})
WITH f1,f2,f3,c11,c12,c13,c21,c22,c23,c31,c32,c33
CREATE (f1)-[:FIELD]->(c11)
CREATE (f1)-[:FIELD]->(c12)
CREATE (f1)-[:FIELD]->(c13)
CREATE (f2)-[:FIELD]->(c21)
CREATE (f2)-[:FIELD]->(c22)
CREATE (f2)-[:FIELD]->(c23)
CREATE (f3)-[:FIELD]->(c31)
CREATE (f3)-[:FIELD]->(c32)
CREATE (f3)-[:FIELD]->(c33);

The original query
MATCH (:UserData {user_id:19})-[:CARD]-(c:Card)-[:FIELD_GROUP]-()-[:FIELD]-(fi:Field)
WHERE fi.object_field_id IN [23,24]
AND (fi.value=~('(?iu).*149.*')
AND fi.value=~('(?iu).*gb.*'))
RETURN c
is working correctly when it returns no records. This is because there are no nodes that match this part of the query
MATCH (fi:Field)
WHERE fi.value=~('(?iu).*149.*')
RETURN fi;
which also returns no records. The AND clause is working as it should.
This is not the same architecture as with count(*)
– MindSupport
Nov 20 at 13:18
Yes, i've noticed it and fixed< but query didn't work
– MindSupport
Nov 20 at 13:20
My Data looks like this one: i.imgur.com/9ACU9Zq.png
– MindSupport
Nov 20 at 13:23
i can't update post bacause of "It looks like your post is mostly code; please add some more details."
– MindSupport
Nov 20 at 13:54
Of interest: Cypher Where clause
– Guy Coder
Nov 20 at 14:38
|
show 2 more comments
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
Here Is Query data for to build relations and nodes:
CREATE (a:UserData {user_id: 19})-[r:CARD]->(b:Card {name: "card"})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1290})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1280})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1270})
WITH count(*) as dummy
MATCH (u:FieldUserGroup), (c:Card) CREATE (c)-[:FIELD_GROUP]->(u)
WITH count(*) as dummy
create (f:Field {value: "jerry", object_field_id: 11})
WITH count(*) as dummy
create (f:Field {value: 2, object_field_id: 12})
WITH count(*) as dummy
create (f:Field {value: "tom", object_field_id: 13})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1290}), (f2:Field) CREATE (f)-[:FIELD]->(f2)
WITH count(*) as dummy
CREATE (c:Field {value: "jack", object_field_id: 14})
WITH count(*) as dummy
CREATE (c:Field {value: 1234, object_field_id: 15})
WITH count(*) as dummy
CREATE (c:Field {value: "robin", object_field_id: 16})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1280}), (c:Field {value: "jack", object_field_id: 14}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1280}), (c:Field {value: 1234, object_field_id: 15}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1280}), (c:Field {value: "robin", object_field_id: 16}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (c:Field {value: "zazaza", object_field_id: 17})
WITH count(*) as dummy
CREATE (c:Field {value: 6578970, object_field_id: 18})
WITH count(*) as dummy
CREATE (c:Field {value: "hamlet", object_field_id: 19})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1270}), (c:Field {value: "zazaza", object_field_id: 17}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1270}), (c:Field {value: 6578970, object_field_id: 18}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1270}), (c:Field {value: "hamlet", object_field_id: 19}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (r:card {name: "card2"})
WITH count(*) as dummy
MATCH (r:card {name: "card2"}), (a:UserData {user_id: 19}) CREATE (a)-[:CARD]->(r)
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1260})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1250})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1240})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (r:card {name: "card2"}) CREATE (r)-[:CARD]->(f)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (r:card {name: "card2"}) CREATE (r)-[:CARD]->(f)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (r:card {name: "card2"}) CREATE (r)-[:CARD]->(f)
WITH count(*) as dummy
CREATE (c:Field {value: "some value", object_field_id: 20})
WITH count(*) as dummy
CREATE (c:Field {value: "more value", object_field_id: 21})
WITH count(*) as dummy
CREATE (c:Field {value: "this is insane!", object_field_id: 22})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (c:Field {object_field_id: 20}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (c:Field {object_field_id: 21}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (c:Field {object_field_id: 22}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (c:Field {value: 14948576, object_field_id: 23})
WITH count(*) as dummy
CREATE (c:Field {value: "GB", object_field_id: 24})
WITH count(*) as dummy
CREATE (c:Field {value: 1, object_field_id: 25})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (c:Field {object_field_id: 23}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (c:Field {object_field_id: 24}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (c:Field {object_field_id: 25}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (c:Field {value: 2, object_field_id: 26})
WITH count(*) as dummy
CREATE (c:Field {value: "Marky", object_field_id: 27})
WITH count(*) as dummy
CREATE (c:Field {value: "Tom Born", object_field_id: 28})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (c:Field {object_field_id: 26}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (c:Field {object_field_id: 27}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (c:Field {object_field_id: 28}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
add a comment |
up vote
0
down vote
Here Is Query data for to build relations and nodes:
CREATE (a:UserData {user_id: 19})-[r:CARD]->(b:Card {name: "card"})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1290})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1280})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1270})
WITH count(*) as dummy
MATCH (u:FieldUserGroup), (c:Card) CREATE (c)-[:FIELD_GROUP]->(u)
WITH count(*) as dummy
create (f:Field {value: "jerry", object_field_id: 11})
WITH count(*) as dummy
create (f:Field {value: 2, object_field_id: 12})
WITH count(*) as dummy
create (f:Field {value: "tom", object_field_id: 13})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1290}), (f2:Field) CREATE (f)-[:FIELD]->(f2)
WITH count(*) as dummy
CREATE (c:Field {value: "jack", object_field_id: 14})
WITH count(*) as dummy
CREATE (c:Field {value: 1234, object_field_id: 15})
WITH count(*) as dummy
CREATE (c:Field {value: "robin", object_field_id: 16})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1280}), (c:Field {value: "jack", object_field_id: 14}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1280}), (c:Field {value: 1234, object_field_id: 15}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1280}), (c:Field {value: "robin", object_field_id: 16}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (c:Field {value: "zazaza", object_field_id: 17})
WITH count(*) as dummy
CREATE (c:Field {value: 6578970, object_field_id: 18})
WITH count(*) as dummy
CREATE (c:Field {value: "hamlet", object_field_id: 19})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1270}), (c:Field {value: "zazaza", object_field_id: 17}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1270}), (c:Field {value: 6578970, object_field_id: 18}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1270}), (c:Field {value: "hamlet", object_field_id: 19}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (r:card {name: "card2"})
WITH count(*) as dummy
MATCH (r:card {name: "card2"}), (a:UserData {user_id: 19}) CREATE (a)-[:CARD]->(r)
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1260})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1250})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1240})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (r:card {name: "card2"}) CREATE (r)-[:CARD]->(f)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (r:card {name: "card2"}) CREATE (r)-[:CARD]->(f)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (r:card {name: "card2"}) CREATE (r)-[:CARD]->(f)
WITH count(*) as dummy
CREATE (c:Field {value: "some value", object_field_id: 20})
WITH count(*) as dummy
CREATE (c:Field {value: "more value", object_field_id: 21})
WITH count(*) as dummy
CREATE (c:Field {value: "this is insane!", object_field_id: 22})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (c:Field {object_field_id: 20}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (c:Field {object_field_id: 21}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (c:Field {object_field_id: 22}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (c:Field {value: 14948576, object_field_id: 23})
WITH count(*) as dummy
CREATE (c:Field {value: "GB", object_field_id: 24})
WITH count(*) as dummy
CREATE (c:Field {value: 1, object_field_id: 25})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (c:Field {object_field_id: 23}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (c:Field {object_field_id: 24}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (c:Field {object_field_id: 25}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (c:Field {value: 2, object_field_id: 26})
WITH count(*) as dummy
CREATE (c:Field {value: "Marky", object_field_id: 27})
WITH count(*) as dummy
CREATE (c:Field {value: "Tom Born", object_field_id: 28})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (c:Field {object_field_id: 26}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (c:Field {object_field_id: 27}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (c:Field {object_field_id: 28}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
add a comment |
up vote
0
down vote
up vote
0
down vote
Here Is Query data for to build relations and nodes:
CREATE (a:UserData {user_id: 19})-[r:CARD]->(b:Card {name: "card"})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1290})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1280})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1270})
WITH count(*) as dummy
MATCH (u:FieldUserGroup), (c:Card) CREATE (c)-[:FIELD_GROUP]->(u)
WITH count(*) as dummy
create (f:Field {value: "jerry", object_field_id: 11})
WITH count(*) as dummy
create (f:Field {value: 2, object_field_id: 12})
WITH count(*) as dummy
create (f:Field {value: "tom", object_field_id: 13})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1290}), (f2:Field) CREATE (f)-[:FIELD]->(f2)
WITH count(*) as dummy
CREATE (c:Field {value: "jack", object_field_id: 14})
WITH count(*) as dummy
CREATE (c:Field {value: 1234, object_field_id: 15})
WITH count(*) as dummy
CREATE (c:Field {value: "robin", object_field_id: 16})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1280}), (c:Field {value: "jack", object_field_id: 14}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1280}), (c:Field {value: 1234, object_field_id: 15}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1280}), (c:Field {value: "robin", object_field_id: 16}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (c:Field {value: "zazaza", object_field_id: 17})
WITH count(*) as dummy
CREATE (c:Field {value: 6578970, object_field_id: 18})
WITH count(*) as dummy
CREATE (c:Field {value: "hamlet", object_field_id: 19})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1270}), (c:Field {value: "zazaza", object_field_id: 17}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1270}), (c:Field {value: 6578970, object_field_id: 18}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1270}), (c:Field {value: "hamlet", object_field_id: 19}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (r:card {name: "card2"})
WITH count(*) as dummy
MATCH (r:card {name: "card2"}), (a:UserData {user_id: 19}) CREATE (a)-[:CARD]->(r)
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1260})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1250})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1240})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (r:card {name: "card2"}) CREATE (r)-[:CARD]->(f)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (r:card {name: "card2"}) CREATE (r)-[:CARD]->(f)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (r:card {name: "card2"}) CREATE (r)-[:CARD]->(f)
WITH count(*) as dummy
CREATE (c:Field {value: "some value", object_field_id: 20})
WITH count(*) as dummy
CREATE (c:Field {value: "more value", object_field_id: 21})
WITH count(*) as dummy
CREATE (c:Field {value: "this is insane!", object_field_id: 22})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (c:Field {object_field_id: 20}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (c:Field {object_field_id: 21}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (c:Field {object_field_id: 22}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (c:Field {value: 14948576, object_field_id: 23})
WITH count(*) as dummy
CREATE (c:Field {value: "GB", object_field_id: 24})
WITH count(*) as dummy
CREATE (c:Field {value: 1, object_field_id: 25})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (c:Field {object_field_id: 23}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (c:Field {object_field_id: 24}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (c:Field {object_field_id: 25}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (c:Field {value: 2, object_field_id: 26})
WITH count(*) as dummy
CREATE (c:Field {value: "Marky", object_field_id: 27})
WITH count(*) as dummy
CREATE (c:Field {value: "Tom Born", object_field_id: 28})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (c:Field {object_field_id: 26}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (c:Field {object_field_id: 27}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (c:Field {object_field_id: 28}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
Here Is Query data for to build relations and nodes:
CREATE (a:UserData {user_id: 19})-[r:CARD]->(b:Card {name: "card"})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1290})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1280})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1270})
WITH count(*) as dummy
MATCH (u:FieldUserGroup), (c:Card) CREATE (c)-[:FIELD_GROUP]->(u)
WITH count(*) as dummy
create (f:Field {value: "jerry", object_field_id: 11})
WITH count(*) as dummy
create (f:Field {value: 2, object_field_id: 12})
WITH count(*) as dummy
create (f:Field {value: "tom", object_field_id: 13})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1290}), (f2:Field) CREATE (f)-[:FIELD]->(f2)
WITH count(*) as dummy
CREATE (c:Field {value: "jack", object_field_id: 14})
WITH count(*) as dummy
CREATE (c:Field {value: 1234, object_field_id: 15})
WITH count(*) as dummy
CREATE (c:Field {value: "robin", object_field_id: 16})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1280}), (c:Field {value: "jack", object_field_id: 14}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1280}), (c:Field {value: 1234, object_field_id: 15}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1280}), (c:Field {value: "robin", object_field_id: 16}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (c:Field {value: "zazaza", object_field_id: 17})
WITH count(*) as dummy
CREATE (c:Field {value: 6578970, object_field_id: 18})
WITH count(*) as dummy
CREATE (c:Field {value: "hamlet", object_field_id: 19})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1270}), (c:Field {value: "zazaza", object_field_id: 17}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1270}), (c:Field {value: 6578970, object_field_id: 18}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1270}), (c:Field {value: "hamlet", object_field_id: 19}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (r:card {name: "card2"})
WITH count(*) as dummy
MATCH (r:card {name: "card2"}), (a:UserData {user_id: 19}) CREATE (a)-[:CARD]->(r)
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1260})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1250})
WITH count(*) as dummy
CREATE (a:FieldUserGroup {data_id: 1240})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (r:card {name: "card2"}) CREATE (r)-[:CARD]->(f)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (r:card {name: "card2"}) CREATE (r)-[:CARD]->(f)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (r:card {name: "card2"}) CREATE (r)-[:CARD]->(f)
WITH count(*) as dummy
CREATE (c:Field {value: "some value", object_field_id: 20})
WITH count(*) as dummy
CREATE (c:Field {value: "more value", object_field_id: 21})
WITH count(*) as dummy
CREATE (c:Field {value: "this is insane!", object_field_id: 22})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (c:Field {object_field_id: 20}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (c:Field {object_field_id: 21}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1260}), (c:Field {object_field_id: 22}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (c:Field {value: 14948576, object_field_id: 23})
WITH count(*) as dummy
CREATE (c:Field {value: "GB", object_field_id: 24})
WITH count(*) as dummy
CREATE (c:Field {value: 1, object_field_id: 25})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (c:Field {object_field_id: 23}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (c:Field {object_field_id: 24}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1250}), (c:Field {object_field_id: 25}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
CREATE (c:Field {value: 2, object_field_id: 26})
WITH count(*) as dummy
CREATE (c:Field {value: "Marky", object_field_id: 27})
WITH count(*) as dummy
CREATE (c:Field {value: "Tom Born", object_field_id: 28})
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (c:Field {object_field_id: 26}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (c:Field {object_field_id: 27}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
MATCH (f:FieldUserGroup {data_id: 1240}), (c:Field {object_field_id: 28}) CREATE (f)-[:FIELD]->(c)
WITH count(*) as dummy
answered Nov 20 at 13:56
MindSupport
13
13
add a comment |
add a comment |
up vote
0
down vote
UPD:
Here is query that works but only in one side by FieldUserGroup
MATCH (c:Card)-[:FIELD_GROUP]-()-[:FIELD]-(fi:Field) where (any(prop in keys(fi) where fi[prop] =~ '(?iu).*tom.*'))
return c
add a comment |
up vote
0
down vote
UPD:
Here is query that works but only in one side by FieldUserGroup
MATCH (c:Card)-[:FIELD_GROUP]-()-[:FIELD]-(fi:Field) where (any(prop in keys(fi) where fi[prop] =~ '(?iu).*tom.*'))
return c
add a comment |
up vote
0
down vote
up vote
0
down vote
UPD:
Here is query that works but only in one side by FieldUserGroup
MATCH (c:Card)-[:FIELD_GROUP]-()-[:FIELD]-(fi:Field) where (any(prop in keys(fi) where fi[prop] =~ '(?iu).*tom.*'))
return c
UPD:
Here is query that works but only in one side by FieldUserGroup
MATCH (c:Card)-[:FIELD_GROUP]-()-[:FIELD]-(fi:Field) where (any(prop in keys(fi) where fi[prop] =~ '(?iu).*tom.*'))
return c
answered Nov 20 at 14:13
MindSupport
13
13
add a comment |
add a comment |
up vote
0
down vote
I cleaned up your Cypher queries to create the database, hopefully I didn't make any mistakes. You will notice that I removed all of the WITH count(*) as dummy as they are not needed and only cause errors. For the statements that have both MATCH and CREATE they needed a WITH. I reordered and grouped similar statements so that they can all be done in one statement, e.g. end with ;.
CREATE (:UserData {user_id: 19});
MATCH (n:UserData {user_id: 19})
WITH n
CREATE (n)-[:CARD]->(:Card {name: "card"});
CREATE (:FieldUserGroup {data_id: 1290})
CREATE (:FieldUserGroup {data_id: 1280})
CREATE (:FieldUserGroup {data_id: 1270});
MATCH (f1:FieldUserGroup {data_id: 1290}),
(f2:FieldUserGroup {data_id: 1280}),
(f3:FieldUserGroup {data_id: 1270}),
(c1:Card {name: "card"})
WITH f1,f2,f3,c1
CREATE (c1)-[:FIELD_GROUP]->(f1)
CREATE (c1)-[:FIELD_GROUP]->(f2)
CREATE (c1)-[:FIELD_GROUP]->(f3);
CREATE (:Field {value: "jerry", object_field_id: 11})
CREATE (:Field {value: 2, object_field_id: 12})
CREATE (:Field {value: "tom", object_field_id: 13})
CREATE (:Field {value: "jack", object_field_id: 14})
CREATE (:Field {value: 1234, object_field_id: 15})
CREATE (:Field {value: "robin", object_field_id: 16})
CREATE (:Field {value: "zazaza", object_field_id: 17})
CREATE (:Field {value: 6578970, object_field_id: 18})
CREATE (:Field {value: "hamlet", object_field_id: 19});
MATCH (f1:FieldUserGroup {data_id: 1290}),
(c11:Field {value: "jerry"}),
(c12:Field {value: 2}),
(c13:Field {value: "tom"}),
(f2:FieldUserGroup {data_id: 1280}),
(c21:Field {value: "jack"}),
(c22:Field {value: 1234}),
(c23:Field {value: "robin"}),
(f3:FieldUserGroup {data_id: 1270}),
(c31:Field {value: "zazaza"}),
(c32:Field {value: 6578970}),
(c33:Field {value: "hamlet"})
WITH f1,f2,f3,c11,c12,c13,c21,c22,c23,c31,c32,c33
CREATE (f1)-[:FIELD]->(c11)
CREATE (f1)-[:FIELD]->(c12)
CREATE (f1)-[:FIELD]->(c13)
CREATE (f2)-[:FIELD]->(c21)
CREATE (f2)-[:FIELD]->(c22)
CREATE (f2)-[:FIELD]->(c23)
CREATE (f3)-[:FIELD]->(c31)
CREATE (f3)-[:FIELD]->(c32)
CREATE (f3)-[:FIELD]->(c33);
MATCH (n:UserData {user_id: 19})
WITH n
CREATE (n)-[:CARD]->(:Card {name: "card2"});
CREATE (:FieldUserGroup {data_id: 1240})
CREATE (:FieldUserGroup {data_id: 1250})
CREATE (:FieldUserGroup {data_id: 1260});
MATCH (f1:FieldUserGroup {data_id: 1240}),
(f2:FieldUserGroup {data_id: 1250}),
(f3:FieldUserGroup {data_id: 1260}),
(c1:Card {name: "card2"})
WITH f1,f2,f3,c1
CREATE (c1)-[:FIELD_GROUP]->(f1)
CREATE (c1)-[:FIELD_GROUP]->(f2)
CREATE (c1)-[:FIELD_GROUP]->(f3);
CREATE (:Field {value: "some value", object_field_id: 20})
CREATE (:Field {value: "more value", object_field_id: 21})
CREATE (:Field {value: "this is insane!", object_field_id: 22})
CREATE (:Field {value: 14948576, object_field_id: 23})
CREATE (:Field {value: "GB", object_field_id: 24})
CREATE (:Field {value: 1, object_field_id: 25})
CREATE (:Field {value: 2, object_field_id: 26})
CREATE (:Field {value: "Marky", object_field_id: 27})
CREATE (:Field {value: "Tom Born", object_field_id: 28});
MATCH (f1:FieldUserGroup {data_id: 1240}),
(c11:Field {value: 2, object_field_id: 26}),
(c12:Field {value: "Marky"}),
(c13:Field {value: "Tom Born"}),
(f2:FieldUserGroup {data_id: 1250}),
(c21:Field {value: 14948576}),
(c22:Field {value: "GB"}),
(c23:Field {value: 1}),
(f3:FieldUserGroup {data_id: 1260}),
(c31:Field {value: "some value"}),
(c32:Field {value: "more value"}),
(c33:Field {value: "this is insane!"})
WITH f1,f2,f3,c11,c12,c13,c21,c22,c23,c31,c32,c33
CREATE (f1)-[:FIELD]->(c11)
CREATE (f1)-[:FIELD]->(c12)
CREATE (f1)-[:FIELD]->(c13)
CREATE (f2)-[:FIELD]->(c21)
CREATE (f2)-[:FIELD]->(c22)
CREATE (f2)-[:FIELD]->(c23)
CREATE (f3)-[:FIELD]->(c31)
CREATE (f3)-[:FIELD]->(c32)
CREATE (f3)-[:FIELD]->(c33);

The original query
MATCH (:UserData {user_id:19})-[:CARD]-(c:Card)-[:FIELD_GROUP]-()-[:FIELD]-(fi:Field)
WHERE fi.object_field_id IN [23,24]
AND (fi.value=~('(?iu).*149.*')
AND fi.value=~('(?iu).*gb.*'))
RETURN c
is working correctly when it returns no records. This is because there are no nodes that match this part of the query
MATCH (fi:Field)
WHERE fi.value=~('(?iu).*149.*')
RETURN fi;
which also returns no records. The AND clause is working as it should.
This is not the same architecture as with count(*)
– MindSupport
Nov 20 at 13:18
Yes, i've noticed it and fixed< but query didn't work
– MindSupport
Nov 20 at 13:20
My Data looks like this one: i.imgur.com/9ACU9Zq.png
– MindSupport
Nov 20 at 13:23
i can't update post bacause of "It looks like your post is mostly code; please add some more details."
– MindSupport
Nov 20 at 13:54
Of interest: Cypher Where clause
– Guy Coder
Nov 20 at 14:38
|
show 2 more comments
up vote
0
down vote
I cleaned up your Cypher queries to create the database, hopefully I didn't make any mistakes. You will notice that I removed all of the WITH count(*) as dummy as they are not needed and only cause errors. For the statements that have both MATCH and CREATE they needed a WITH. I reordered and grouped similar statements so that they can all be done in one statement, e.g. end with ;.
CREATE (:UserData {user_id: 19});
MATCH (n:UserData {user_id: 19})
WITH n
CREATE (n)-[:CARD]->(:Card {name: "card"});
CREATE (:FieldUserGroup {data_id: 1290})
CREATE (:FieldUserGroup {data_id: 1280})
CREATE (:FieldUserGroup {data_id: 1270});
MATCH (f1:FieldUserGroup {data_id: 1290}),
(f2:FieldUserGroup {data_id: 1280}),
(f3:FieldUserGroup {data_id: 1270}),
(c1:Card {name: "card"})
WITH f1,f2,f3,c1
CREATE (c1)-[:FIELD_GROUP]->(f1)
CREATE (c1)-[:FIELD_GROUP]->(f2)
CREATE (c1)-[:FIELD_GROUP]->(f3);
CREATE (:Field {value: "jerry", object_field_id: 11})
CREATE (:Field {value: 2, object_field_id: 12})
CREATE (:Field {value: "tom", object_field_id: 13})
CREATE (:Field {value: "jack", object_field_id: 14})
CREATE (:Field {value: 1234, object_field_id: 15})
CREATE (:Field {value: "robin", object_field_id: 16})
CREATE (:Field {value: "zazaza", object_field_id: 17})
CREATE (:Field {value: 6578970, object_field_id: 18})
CREATE (:Field {value: "hamlet", object_field_id: 19});
MATCH (f1:FieldUserGroup {data_id: 1290}),
(c11:Field {value: "jerry"}),
(c12:Field {value: 2}),
(c13:Field {value: "tom"}),
(f2:FieldUserGroup {data_id: 1280}),
(c21:Field {value: "jack"}),
(c22:Field {value: 1234}),
(c23:Field {value: "robin"}),
(f3:FieldUserGroup {data_id: 1270}),
(c31:Field {value: "zazaza"}),
(c32:Field {value: 6578970}),
(c33:Field {value: "hamlet"})
WITH f1,f2,f3,c11,c12,c13,c21,c22,c23,c31,c32,c33
CREATE (f1)-[:FIELD]->(c11)
CREATE (f1)-[:FIELD]->(c12)
CREATE (f1)-[:FIELD]->(c13)
CREATE (f2)-[:FIELD]->(c21)
CREATE (f2)-[:FIELD]->(c22)
CREATE (f2)-[:FIELD]->(c23)
CREATE (f3)-[:FIELD]->(c31)
CREATE (f3)-[:FIELD]->(c32)
CREATE (f3)-[:FIELD]->(c33);
MATCH (n:UserData {user_id: 19})
WITH n
CREATE (n)-[:CARD]->(:Card {name: "card2"});
CREATE (:FieldUserGroup {data_id: 1240})
CREATE (:FieldUserGroup {data_id: 1250})
CREATE (:FieldUserGroup {data_id: 1260});
MATCH (f1:FieldUserGroup {data_id: 1240}),
(f2:FieldUserGroup {data_id: 1250}),
(f3:FieldUserGroup {data_id: 1260}),
(c1:Card {name: "card2"})
WITH f1,f2,f3,c1
CREATE (c1)-[:FIELD_GROUP]->(f1)
CREATE (c1)-[:FIELD_GROUP]->(f2)
CREATE (c1)-[:FIELD_GROUP]->(f3);
CREATE (:Field {value: "some value", object_field_id: 20})
CREATE (:Field {value: "more value", object_field_id: 21})
CREATE (:Field {value: "this is insane!", object_field_id: 22})
CREATE (:Field {value: 14948576, object_field_id: 23})
CREATE (:Field {value: "GB", object_field_id: 24})
CREATE (:Field {value: 1, object_field_id: 25})
CREATE (:Field {value: 2, object_field_id: 26})
CREATE (:Field {value: "Marky", object_field_id: 27})
CREATE (:Field {value: "Tom Born", object_field_id: 28});
MATCH (f1:FieldUserGroup {data_id: 1240}),
(c11:Field {value: 2, object_field_id: 26}),
(c12:Field {value: "Marky"}),
(c13:Field {value: "Tom Born"}),
(f2:FieldUserGroup {data_id: 1250}),
(c21:Field {value: 14948576}),
(c22:Field {value: "GB"}),
(c23:Field {value: 1}),
(f3:FieldUserGroup {data_id: 1260}),
(c31:Field {value: "some value"}),
(c32:Field {value: "more value"}),
(c33:Field {value: "this is insane!"})
WITH f1,f2,f3,c11,c12,c13,c21,c22,c23,c31,c32,c33
CREATE (f1)-[:FIELD]->(c11)
CREATE (f1)-[:FIELD]->(c12)
CREATE (f1)-[:FIELD]->(c13)
CREATE (f2)-[:FIELD]->(c21)
CREATE (f2)-[:FIELD]->(c22)
CREATE (f2)-[:FIELD]->(c23)
CREATE (f3)-[:FIELD]->(c31)
CREATE (f3)-[:FIELD]->(c32)
CREATE (f3)-[:FIELD]->(c33);

The original query
MATCH (:UserData {user_id:19})-[:CARD]-(c:Card)-[:FIELD_GROUP]-()-[:FIELD]-(fi:Field)
WHERE fi.object_field_id IN [23,24]
AND (fi.value=~('(?iu).*149.*')
AND fi.value=~('(?iu).*gb.*'))
RETURN c
is working correctly when it returns no records. This is because there are no nodes that match this part of the query
MATCH (fi:Field)
WHERE fi.value=~('(?iu).*149.*')
RETURN fi;
which also returns no records. The AND clause is working as it should.
This is not the same architecture as with count(*)
– MindSupport
Nov 20 at 13:18
Yes, i've noticed it and fixed< but query didn't work
– MindSupport
Nov 20 at 13:20
My Data looks like this one: i.imgur.com/9ACU9Zq.png
– MindSupport
Nov 20 at 13:23
i can't update post bacause of "It looks like your post is mostly code; please add some more details."
– MindSupport
Nov 20 at 13:54
Of interest: Cypher Where clause
– Guy Coder
Nov 20 at 14:38
|
show 2 more comments
up vote
0
down vote
up vote
0
down vote
I cleaned up your Cypher queries to create the database, hopefully I didn't make any mistakes. You will notice that I removed all of the WITH count(*) as dummy as they are not needed and only cause errors. For the statements that have both MATCH and CREATE they needed a WITH. I reordered and grouped similar statements so that they can all be done in one statement, e.g. end with ;.
CREATE (:UserData {user_id: 19});
MATCH (n:UserData {user_id: 19})
WITH n
CREATE (n)-[:CARD]->(:Card {name: "card"});
CREATE (:FieldUserGroup {data_id: 1290})
CREATE (:FieldUserGroup {data_id: 1280})
CREATE (:FieldUserGroup {data_id: 1270});
MATCH (f1:FieldUserGroup {data_id: 1290}),
(f2:FieldUserGroup {data_id: 1280}),
(f3:FieldUserGroup {data_id: 1270}),
(c1:Card {name: "card"})
WITH f1,f2,f3,c1
CREATE (c1)-[:FIELD_GROUP]->(f1)
CREATE (c1)-[:FIELD_GROUP]->(f2)
CREATE (c1)-[:FIELD_GROUP]->(f3);
CREATE (:Field {value: "jerry", object_field_id: 11})
CREATE (:Field {value: 2, object_field_id: 12})
CREATE (:Field {value: "tom", object_field_id: 13})
CREATE (:Field {value: "jack", object_field_id: 14})
CREATE (:Field {value: 1234, object_field_id: 15})
CREATE (:Field {value: "robin", object_field_id: 16})
CREATE (:Field {value: "zazaza", object_field_id: 17})
CREATE (:Field {value: 6578970, object_field_id: 18})
CREATE (:Field {value: "hamlet", object_field_id: 19});
MATCH (f1:FieldUserGroup {data_id: 1290}),
(c11:Field {value: "jerry"}),
(c12:Field {value: 2}),
(c13:Field {value: "tom"}),
(f2:FieldUserGroup {data_id: 1280}),
(c21:Field {value: "jack"}),
(c22:Field {value: 1234}),
(c23:Field {value: "robin"}),
(f3:FieldUserGroup {data_id: 1270}),
(c31:Field {value: "zazaza"}),
(c32:Field {value: 6578970}),
(c33:Field {value: "hamlet"})
WITH f1,f2,f3,c11,c12,c13,c21,c22,c23,c31,c32,c33
CREATE (f1)-[:FIELD]->(c11)
CREATE (f1)-[:FIELD]->(c12)
CREATE (f1)-[:FIELD]->(c13)
CREATE (f2)-[:FIELD]->(c21)
CREATE (f2)-[:FIELD]->(c22)
CREATE (f2)-[:FIELD]->(c23)
CREATE (f3)-[:FIELD]->(c31)
CREATE (f3)-[:FIELD]->(c32)
CREATE (f3)-[:FIELD]->(c33);
MATCH (n:UserData {user_id: 19})
WITH n
CREATE (n)-[:CARD]->(:Card {name: "card2"});
CREATE (:FieldUserGroup {data_id: 1240})
CREATE (:FieldUserGroup {data_id: 1250})
CREATE (:FieldUserGroup {data_id: 1260});
MATCH (f1:FieldUserGroup {data_id: 1240}),
(f2:FieldUserGroup {data_id: 1250}),
(f3:FieldUserGroup {data_id: 1260}),
(c1:Card {name: "card2"})
WITH f1,f2,f3,c1
CREATE (c1)-[:FIELD_GROUP]->(f1)
CREATE (c1)-[:FIELD_GROUP]->(f2)
CREATE (c1)-[:FIELD_GROUP]->(f3);
CREATE (:Field {value: "some value", object_field_id: 20})
CREATE (:Field {value: "more value", object_field_id: 21})
CREATE (:Field {value: "this is insane!", object_field_id: 22})
CREATE (:Field {value: 14948576, object_field_id: 23})
CREATE (:Field {value: "GB", object_field_id: 24})
CREATE (:Field {value: 1, object_field_id: 25})
CREATE (:Field {value: 2, object_field_id: 26})
CREATE (:Field {value: "Marky", object_field_id: 27})
CREATE (:Field {value: "Tom Born", object_field_id: 28});
MATCH (f1:FieldUserGroup {data_id: 1240}),
(c11:Field {value: 2, object_field_id: 26}),
(c12:Field {value: "Marky"}),
(c13:Field {value: "Tom Born"}),
(f2:FieldUserGroup {data_id: 1250}),
(c21:Field {value: 14948576}),
(c22:Field {value: "GB"}),
(c23:Field {value: 1}),
(f3:FieldUserGroup {data_id: 1260}),
(c31:Field {value: "some value"}),
(c32:Field {value: "more value"}),
(c33:Field {value: "this is insane!"})
WITH f1,f2,f3,c11,c12,c13,c21,c22,c23,c31,c32,c33
CREATE (f1)-[:FIELD]->(c11)
CREATE (f1)-[:FIELD]->(c12)
CREATE (f1)-[:FIELD]->(c13)
CREATE (f2)-[:FIELD]->(c21)
CREATE (f2)-[:FIELD]->(c22)
CREATE (f2)-[:FIELD]->(c23)
CREATE (f3)-[:FIELD]->(c31)
CREATE (f3)-[:FIELD]->(c32)
CREATE (f3)-[:FIELD]->(c33);

The original query
MATCH (:UserData {user_id:19})-[:CARD]-(c:Card)-[:FIELD_GROUP]-()-[:FIELD]-(fi:Field)
WHERE fi.object_field_id IN [23,24]
AND (fi.value=~('(?iu).*149.*')
AND fi.value=~('(?iu).*gb.*'))
RETURN c
is working correctly when it returns no records. This is because there are no nodes that match this part of the query
MATCH (fi:Field)
WHERE fi.value=~('(?iu).*149.*')
RETURN fi;
which also returns no records. The AND clause is working as it should.
I cleaned up your Cypher queries to create the database, hopefully I didn't make any mistakes. You will notice that I removed all of the WITH count(*) as dummy as they are not needed and only cause errors. For the statements that have both MATCH and CREATE they needed a WITH. I reordered and grouped similar statements so that they can all be done in one statement, e.g. end with ;.
CREATE (:UserData {user_id: 19});
MATCH (n:UserData {user_id: 19})
WITH n
CREATE (n)-[:CARD]->(:Card {name: "card"});
CREATE (:FieldUserGroup {data_id: 1290})
CREATE (:FieldUserGroup {data_id: 1280})
CREATE (:FieldUserGroup {data_id: 1270});
MATCH (f1:FieldUserGroup {data_id: 1290}),
(f2:FieldUserGroup {data_id: 1280}),
(f3:FieldUserGroup {data_id: 1270}),
(c1:Card {name: "card"})
WITH f1,f2,f3,c1
CREATE (c1)-[:FIELD_GROUP]->(f1)
CREATE (c1)-[:FIELD_GROUP]->(f2)
CREATE (c1)-[:FIELD_GROUP]->(f3);
CREATE (:Field {value: "jerry", object_field_id: 11})
CREATE (:Field {value: 2, object_field_id: 12})
CREATE (:Field {value: "tom", object_field_id: 13})
CREATE (:Field {value: "jack", object_field_id: 14})
CREATE (:Field {value: 1234, object_field_id: 15})
CREATE (:Field {value: "robin", object_field_id: 16})
CREATE (:Field {value: "zazaza", object_field_id: 17})
CREATE (:Field {value: 6578970, object_field_id: 18})
CREATE (:Field {value: "hamlet", object_field_id: 19});
MATCH (f1:FieldUserGroup {data_id: 1290}),
(c11:Field {value: "jerry"}),
(c12:Field {value: 2}),
(c13:Field {value: "tom"}),
(f2:FieldUserGroup {data_id: 1280}),
(c21:Field {value: "jack"}),
(c22:Field {value: 1234}),
(c23:Field {value: "robin"}),
(f3:FieldUserGroup {data_id: 1270}),
(c31:Field {value: "zazaza"}),
(c32:Field {value: 6578970}),
(c33:Field {value: "hamlet"})
WITH f1,f2,f3,c11,c12,c13,c21,c22,c23,c31,c32,c33
CREATE (f1)-[:FIELD]->(c11)
CREATE (f1)-[:FIELD]->(c12)
CREATE (f1)-[:FIELD]->(c13)
CREATE (f2)-[:FIELD]->(c21)
CREATE (f2)-[:FIELD]->(c22)
CREATE (f2)-[:FIELD]->(c23)
CREATE (f3)-[:FIELD]->(c31)
CREATE (f3)-[:FIELD]->(c32)
CREATE (f3)-[:FIELD]->(c33);
MATCH (n:UserData {user_id: 19})
WITH n
CREATE (n)-[:CARD]->(:Card {name: "card2"});
CREATE (:FieldUserGroup {data_id: 1240})
CREATE (:FieldUserGroup {data_id: 1250})
CREATE (:FieldUserGroup {data_id: 1260});
MATCH (f1:FieldUserGroup {data_id: 1240}),
(f2:FieldUserGroup {data_id: 1250}),
(f3:FieldUserGroup {data_id: 1260}),
(c1:Card {name: "card2"})
WITH f1,f2,f3,c1
CREATE (c1)-[:FIELD_GROUP]->(f1)
CREATE (c1)-[:FIELD_GROUP]->(f2)
CREATE (c1)-[:FIELD_GROUP]->(f3);
CREATE (:Field {value: "some value", object_field_id: 20})
CREATE (:Field {value: "more value", object_field_id: 21})
CREATE (:Field {value: "this is insane!", object_field_id: 22})
CREATE (:Field {value: 14948576, object_field_id: 23})
CREATE (:Field {value: "GB", object_field_id: 24})
CREATE (:Field {value: 1, object_field_id: 25})
CREATE (:Field {value: 2, object_field_id: 26})
CREATE (:Field {value: "Marky", object_field_id: 27})
CREATE (:Field {value: "Tom Born", object_field_id: 28});
MATCH (f1:FieldUserGroup {data_id: 1240}),
(c11:Field {value: 2, object_field_id: 26}),
(c12:Field {value: "Marky"}),
(c13:Field {value: "Tom Born"}),
(f2:FieldUserGroup {data_id: 1250}),
(c21:Field {value: 14948576}),
(c22:Field {value: "GB"}),
(c23:Field {value: 1}),
(f3:FieldUserGroup {data_id: 1260}),
(c31:Field {value: "some value"}),
(c32:Field {value: "more value"}),
(c33:Field {value: "this is insane!"})
WITH f1,f2,f3,c11,c12,c13,c21,c22,c23,c31,c32,c33
CREATE (f1)-[:FIELD]->(c11)
CREATE (f1)-[:FIELD]->(c12)
CREATE (f1)-[:FIELD]->(c13)
CREATE (f2)-[:FIELD]->(c21)
CREATE (f2)-[:FIELD]->(c22)
CREATE (f2)-[:FIELD]->(c23)
CREATE (f3)-[:FIELD]->(c31)
CREATE (f3)-[:FIELD]->(c32)
CREATE (f3)-[:FIELD]->(c33);

The original query
MATCH (:UserData {user_id:19})-[:CARD]-(c:Card)-[:FIELD_GROUP]-()-[:FIELD]-(fi:Field)
WHERE fi.object_field_id IN [23,24]
AND (fi.value=~('(?iu).*149.*')
AND fi.value=~('(?iu).*gb.*'))
RETURN c
is working correctly when it returns no records. This is because there are no nodes that match this part of the query
MATCH (fi:Field)
WHERE fi.value=~('(?iu).*149.*')
RETURN fi;
which also returns no records. The AND clause is working as it should.
edited Nov 20 at 15:14
answered Nov 20 at 13:00
Guy Coder
14.1k43781
14.1k43781
This is not the same architecture as with count(*)
– MindSupport
Nov 20 at 13:18
Yes, i've noticed it and fixed< but query didn't work
– MindSupport
Nov 20 at 13:20
My Data looks like this one: i.imgur.com/9ACU9Zq.png
– MindSupport
Nov 20 at 13:23
i can't update post bacause of "It looks like your post is mostly code; please add some more details."
– MindSupport
Nov 20 at 13:54
Of interest: Cypher Where clause
– Guy Coder
Nov 20 at 14:38
|
show 2 more comments
This is not the same architecture as with count(*)
– MindSupport
Nov 20 at 13:18
Yes, i've noticed it and fixed< but query didn't work
– MindSupport
Nov 20 at 13:20
My Data looks like this one: i.imgur.com/9ACU9Zq.png
– MindSupport
Nov 20 at 13:23
i can't update post bacause of "It looks like your post is mostly code; please add some more details."
– MindSupport
Nov 20 at 13:54
Of interest: Cypher Where clause
– Guy Coder
Nov 20 at 14:38
This is not the same architecture as with count(*)
– MindSupport
Nov 20 at 13:18
This is not the same architecture as with count(*)
– MindSupport
Nov 20 at 13:18
Yes, i've noticed it and fixed< but query didn't work
– MindSupport
Nov 20 at 13:20
Yes, i've noticed it and fixed< but query didn't work
– MindSupport
Nov 20 at 13:20
My Data looks like this one: i.imgur.com/9ACU9Zq.png
– MindSupport
Nov 20 at 13:23
My Data looks like this one: i.imgur.com/9ACU9Zq.png
– MindSupport
Nov 20 at 13:23
i can't update post bacause of "It looks like your post is mostly code; please add some more details."
– MindSupport
Nov 20 at 13:54
i can't update post bacause of "It looks like your post is mostly code; please add some more details."
– MindSupport
Nov 20 at 13:54
Of interest: Cypher Where clause
– Guy Coder
Nov 20 at 14:38
Of interest: Cypher Where clause
– Guy Coder
Nov 20 at 14:38
|
show 2 more comments
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53375136%2fneo4j-dynamic-query-with-multiple-filters-on-nodes%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
If this were my problem I would break it down into smaller parts until I found the part that did not work, fix it then put the working parts back together until the entire query works.
– Guy Coder
Nov 19 at 15:32
Screen shots are not that helpful when it is possible to add the code here so that we may recreate a portion of the database and test it on our system.
– Guy Coder
Nov 19 at 15:34
Are you sure that you want find nodes that have a
valueproperty that containskonstand a2? None of your example match this condition ...– logisima
Nov 19 at 15:40
Ok i'll build test data
– MindSupport
Nov 19 at 17:18
1
Those parameters that you use in the query (2293, 2294, '.*konst.*') are missing in the test data.
– stdob--
Nov 20 at 12:27