Hello, I am trying to rename a predicate containing a list of links using upsert in JSON format. Below are my operations. I must be missing something, because new_projects predicate is empty, while I would expect it to be equal to projects for each Company node.
$ curl localhost:8080/alter -X POST -d $'
name: string @index(exact) .
id: string @index(exact) .
projects: [uid] .
new_projects: [uid] .
type Project {
name: string
}
type NewProject {
name: string
}
type Company {
name: string
projects: [Project]
new_projects: [NewProject]
}
'
$ curl -H "Content-Type: application/json" -X POST localhost:8080/mutate?commitNow=true -d '
{ "set":[
{"uid":"_:p1","name":"Project 1","dgraph.type":"Project"},
{"uid":"_:p2","name":"Project 2","dgraph.type":"Project"},
{"uid":"_:p3","name":"Project 3","dgraph.type":"Project"},
{"uid":"_:c1","name":"Company 1","dgraph.type":"Company"},
{"uid":"_:c2","name":"Company 2","dgraph.type":"Company"},
{"uid":"_:c1","projects":{"uid":"_:p1"}},
{"uid":"_:c1","projects":{"uid":"_:p2"}},
{"uid":"_:c2","projects":{"uid":"_:p3"}}
]}'
$ curl -H "Content-Type: application/json" -X POST localhost:8080/mutate?commitNow=true -d '
{
"query": "{ v as var(func:type(Project) ) ",
"set": {
"uid": "uid(v)",
"dgraph.type": "NewProject"
}
}
'
$ curl -H "Content-Type: application/json" -X POST localhost:8080/mutate?commitNow=true -d '
{
"query": "{ v as var(func:type(Company) ) {p as projects {uid}}}",
"set": {
"uid": "uid(v)",
"new_projects": "val(p)"
}
}
'
So, why this last mutation does not work? How to make it working?
BTW, using dgraph 1.2.0.
Regards,
miko