notIn being ignored in exchange/fullName

I’m trying to filter out some results from my query. This query seems to work filtering out the Pancake results but I’m still getting Uniswap results, despite copying the exact string from exchange/fullName.

I think the problem may be that the query is filtering by just exchange/name.

{
ethereum(network: bsc) {
dexTrades(
date: {between: [“2023-01-01”,“2023-01-02”]}
exchangeName: {notIn: [“Pancake”, “PancakeSwap”, “”, “”, “Pancake v2”, “” “Uniswap v3”, “Uniswap v2”,]}
) {
sellAmount(in: USD)
buyAmount(in: USD)
exchange {
fullName
}
tradeAmount(in: USD)
}
}
}

I’m trying to get around some errors arising from having too many rows returned in a query. I guess my questions are as follows:

Can I get the filter query to work on exchange/fullName rather than exchange/name?
Is there a way I can filter by results that return null for exchange/name? I can fix the results locally if I can just spread the number of rows between queries.
Bonus question, is there any way I can use a fuzzy query in the notIn string, such as a wildcard?

Many thanks.

So I’ve figured out how to search for null (for the record you use “”). I’m still hitting errors because the data I’m trying to pull is quite granular so I need to break it down even further. What I’d love to be able to do it have some way of searching for things that start with A up to N, and then M up to Z, so split it into two queries. Then, if the code detected it hitting the limit it could break it down automatically into three different queries, and so on.

BitQuery never lets me search for less than a day of results at a time. Even if I search for one minutes worth of data I get the whole day back. I’m assuming this happens to everyone but if there’s a way around this it’d also be a solution.

Use time instead of date for granularity like this:

  ethereum(network: bsc) {
    dexTrades(
      time: {between: ["2023-08-23T11:27:27.000Z","2023-08-23T11:28:27.000Z"]}
      exchangeName: {notIn: ["","Pancake", "PancakeSwap", "Uniswap v3", "Uniswap v2"]}
    ) {
      sellAmount(in: USD)
      buyAmount(in: USD)
      exchange {
        fullName
      }
      tradeAmount(in: USD)
    }
  }
}

Thanks, didn’t know that. I can work that into a solution.