I have three types of nodes (we will not go into details why it is done this way):
type person {
created_at: time
name: string
date_of_birth: time
phone_number: string
email: string
address: string
}
type client {
created_at: time
login: string
pass: password
persons: [person]
}
type client_x {
created_at: time
extends: client
}
I do not want to get too attached to specific predicates, but intend to get everything from the Client type (do not forget that they can change), while I need to get only a specific Person (for example, by phone number, but let’s say I don’t need 1000 others).
I won’t be able to simply get all predicates via expand (all), since I still need to restrict the elements of the person list.
Is it possible to do this?
{
var(func: type(person), first: 1) @filter(eq(phone_number, "9021324631")) {
~persons (first: 1) {
cl as uid
}
}
list(func: uid(cl)) {
uid
expand(_all_) {
uid
expand(_all_)
}
}
}
I have not yet written the request itself, as it stalled, and this is still a sketch.