Why i wouldn't get messages from query

schema

type User @withSubscription  {
	id: ID! 
	name: String! 
	email: String! 
	messages: [Message] 
}

type Message @withSubscription {
	id: ID! 
	message: String! 
	senderMail: String! 
	receiverMail: String! 
	timestamp: DateTime! 
	users: [User] 
}
 

if i doing something like this

query MyQuery {
  queryUser(filter: {id: "0x26190cd94"}) {
    id
    email
    messages(filter: {}) {
      id
      message
      receiverMail
      senderMail
      timestamp
      users {
        id
      }
    }
  }
}

i get

{
  "data": {
    "queryUser": [
      {
        "id": "0x26190cd94",
        "email": "xxx",
        "messages": [],
        "name": "xxx"
      }
    ]
  },
  "extensions": {
    "touched_uids": 6,
    "tracing": {
      "version": 1,
      "startTime": "2021-11-19T16:27:12.734096721Z",
      "endTime": "2021-11-19T16:27:12.73635796Z",
      "duration": 2261239,
      "execution": {
        "resolvers": [
          {
            "path": [
              "queryUser"
            ],
            "parentType": "Query",
            "fieldName": "queryUser",
            "returnType": "[User]",
            "startOffset": 144364,
            "duration": 2111886,
            "dgraph": [
              {
                "label": "query",
                "startOffset": 220911,
                "duration": 2033485
              }
            ]
          }
        ]
      }
    }
  }
}

but in messages nothing
and if i want filter by message recieverMail i cant do it

query MyQuery {
  queryUser(filter: {id: "0x26190cd94"}) {
    id
    email
    messages(filter: {recieverMail: ""}) {
      id
      message
      receiverMail
      senderMail
      timestamp
      users {
        id
      }
    }
  }
}

{
  "errors": [
    {
      "message": "Field \"recieverMail\" is not defined by type MessageFilter.",
      "locations": [
        {
          "line": 5,
          "column": 23
        }
      ]
    }
  ],
  "extensions": {
    "tracing": {
      "version": 1,
      "startTime": "2021-11-19T16:34:19.656459232Z",
      "endTime": "2021-11-19T16:34:19.656575274Z",
      "duration": 116060
    }
  }
}

but the documentation says we can filter by different fields , maybe i do something wrong

If you don’t want to filter, do this:

messages {
      id
      message
      receiverMail
      senderMail
      timestamp
      users {
        id
      }
    }

But if you do want to filter, you need a value (I believe).

J

i have messages

query MyQuery {
  queryMessage() {
    id
    message
    receiverMail
    senderMail
    timestamp
  }
}

by this query i got it all, but i cant filtering it by user or receiverMail or something else

What are you trying to do?

query MyQuery {
  queryUser(filter: {id: "0x26190cd94"}) {
    id
    email
    messages(filter: {}) {
      id
      message
      receiverMail
      senderMail
      timestamp
      users {
        id
      }
    }
  }
}

You’re original message can be filtered, but you need a value in the filter. In you example you only have {}, which is not a valid value.

query MyQuery {
  queryMessage() {
    id
    message
    receiverMail
    senderMail
    timestamp
  }
}

Why can’t you filter it here? You just add a filter (WITH A FILTER VALUE), and you should have no problems.

J