Lige nu tror jeg ikke det er muligt at gøre det her med én operation. De bitvise operatorer (http://www.mongodb.org/display/DOCS/Updating#Updating-%24bit) har ikke en '$xor' endnu, selvom jeg har en patch til det.
Lige nu er den løsning, jeg tænker på, ved altid at bruge '$inc':
cl.update( { "_id": ...}, { '$inc' : { 'field' : 1 } } );
Så i stedet for at tjekke for sand eller falsk, kan du kontrollere, om et element er "sandt":
cl.find( { "_id": ..., 'field' : { '$mod' : [ 2, 1 ] } );
IE, du bruger modulo-operatoren til at se, om det er lige eller ujævnt med selv at være "unset", og ujævnt at være "set". Hvis du vil have den modsatte adfærd (dvs. finde alle elementer, der ikke har flaget sat), så brug
[ 2, 0 ];