In questo momento, non credo sia possibile farlo con una sola operazione. Gli operatori bit per bit (http://www.mongodb.org/display/DOCS/Updating#Updating-%24bit) non hanno ancora un '$xor' anche se ho una patch per esso.
In questo momento la soluzione a cui penso è di usare sempre '$inc':
cl.update( { "_id": ...}, { '$inc' : { 'field' : 1 } } );
Quindi, invece di controllare vero o falso, puoi controllare se un elemento è "vero":
cl.find( { "_id": ..., 'field' : { '$mod' : [ 2, 1 ] } );
IE, stai usando l'operatore modulo per vedere se è pari o irregolare anche essendo "non impostato" e irregolare essendo "impostato". Se vuoi avere il comportamento opposto (cioè, trova tutti gli elementi che non hanno il flag impostato), usa
[ 2, 0 ];