{
"identity": 7,
"labels": [
"Parent"
],
"properties": {
"name": "foo1"
}
},
{
"identity": 8,
"labels": [
"Child"
],
"properties": {
"name": "bar2"
}
},
{
"identity": 9,
"labels": [
"Child"
],
"properties": {
"name": "bar1"
}
},
{
"identity": 10,
"labels": [
"Parent"
],
"properties": {
"name": "foo2"
}
}
Je veux sélectionner le Parents qui n'ont pas de enfant con name='abc'
Comportement attendu : Je devrais obtenir les deux parents ( foo1
y foo2
) comme résultat
Requête1 :
Match (x1:Parent) with x1
optional Match (x1)-[:CHILD]-(x2:Child) with x1 , collect(x2) as x3
UNWIND x3 as x2
WITH x1 , x2 , x3
where none (x IN x3 where x.name IN ['abc'])
return DISTINCT x1
Cette requête ne me renvoie que 1 Parent( foo1
) mais il devrait retourner les deux parents et le second parent( foo2
) n'est connecté à aucun enfant.
PS : Raison de l'utilisation UNWIND
est d'utiliser les variables pour d'autres WHERE
clauses sur les variables x2
.