Un oggetto QueryFilterNode rappresenta un nodo nella struttura ad albero dell'espressione della query.
Un'espressione della query è costituita da uno o più oggetti QueryFilterNode disposti in modo gerarchico. Il nodo root è creato dal metodo BuildFilterOperator dell'oggetto QueryDef. I nodi rimanenti sono tutte istanze della classe QueryFilterNode. Ogni nodo è costituito da uno o più filtri e da un operatore booleano(specificato utilizzando le costanti BoolOp).
Per aggiungere un filtro ad un nodo, si richiama il metodo BuildFilter del nodo. Utilizzando questo metodo, si specifica un campo e un valore specifico da confrontare e l'operatore di confronto da utilizzare (una delle costanti CompOp). Sebbene il nodo utilizzi un operatore booleano, è possibile aggiungere un numero di filtri ad un nodo con il metodo BuildFilter.
È possibile aggiungere altri nodi. Utilizzando il metodo BuildFilterOperator di QueryFilterNode, è possibile aggiungere nodi come se fossero un filtro aggiuntivo. Nidificando nodi in questo modo, è possibile creare complesse espressioni di query con nodi e filtri che formano una struttura ad albero.