Wisgon
(Wisgon)
1
I have a predicate named “password”, it’s schema is: password string @index(hash) .
now the conditional upsert not work:
upsert{
query{
q(func:uid(0xc352)){
pd as password
}
}
mutation @if(eq(val(pd), "123456")) {
set{
<0xc352> <password> "222222" .
}
}
}
the password of node 0xc352 is realy “123456”…Is that because val(pd) is an array?
MichelDiz
(Michel Diz)
2
Conditional upsert doesn’t support inequality on val. Just length. Change your query to:
upsert{
query{
v as var(func:uid(0xc352)) @filter(eq(password, "123456")) {
password
}
}
mutation @if(eq(len(v)) {
set{
<0xc352> <password> "222222" .
}
}
}
BTW, you should use password-type https://dgraph.io/docs/query-language/schema/#password-type
1 Like