Does order in a DQL query matter?

Use normal queries. Well defined queries. No recurse I mean.

Not using filters in a count or even recurse. You can use them, but you should explore your chances of not getting the expected results.

We call “root query”. Is the params we give in the “top” of each query block. What differs from “query body” and “nested blocks”.

It works the problem is your query that is wrong. I gonna explain.

The difference of those queries is that. I’m querying for all users and applying the filter accordingly. When you do “q(func: eq(name, “Alice”) )” you are querying only for Alice. Not all users. So you are selecting Alice and thinking that it would somehow find the other users.

q(func: eq(name, "Alice") )

This above is the Query Root. And this bellow is the Filter to be applied against the query root.
The recurse has not yet been initialized. It is after these parameters are executed that the Recurse starts.

@filter(NOT 
    ( eq(name, "Bob") 
    or eq(name, "Charlie") 
    or eq(name, "Dave")
    or eq(name, "Raj")
  ))

And this

{
      name
      dgraph.type
      age
      owns_pet
      friend~
      friend 
      count(friend)
  }

Is the query body that in the case of a recurse will be like a “template to follow”.

The query root params are like “SELECT * USERS FROM GRAPH”.
In your example it would be like “SELECT “Alice” FROM USERS” did you get it?
And the query body is more like selecting what you want to return.

Yes. Docs you can reach out the docs repo for any kind of requests.
But it is better to ask here first, before creating any issue there. And create the issue once you are sure.