OBS. Never assign a UID manually, the UIDs must be generated by the Dgraph to avoid conflicts. Only if strictly necessary, if you want to update an existing Node.
I do not know exactly if I understood the question, but for now there is only this form, via GraphQL + -. There will be support for other languages such as Gremlin.
I believe I already answered this question. I believe you will have something different from what we have today only when we support other Q languages. Today is the easiest.
If we were to use something like “expand(absolutely_everything”) this would lead to possible performance wastage. Ideally, you should use planned queries when you are on production. You can expand indefinitely, but you’d better do it in a planned way.
But tell me what your difficulty is? What does this blocks you in practice?
btw:
expand () serves to expand predicates, when you use "_all_" inside expand it will try to find all existing predicates of a Node and return them.
Problem: I was basically trying to do a multi-level search of a node 10 levels deep the way other graph databases do (neo4j or gremlin) where 10 could be a parameter and it would traverse it.
I think the solutions is clear for me now, to use nested “expands”
In my point of view you can do this, you can use most Dgraph functions and directives at all levels of a query block.
First you do a wide search in Root, and in the others you use @filter with a pattern to your liking. You can use eq (Inequality), has (something), regexp, uid_in, AND, OR and NOT and so on.