À l'heure actuelle, je ne pense pas qu'il soit possible de le faire en une seule opération. Les opérateurs au niveau du bit (http://www.mongodb.org/display/DOCS/Updating#Updating-%24bit) n'ont pas encore de '$xor' bien que j'aie un patch pour cela.
En ce moment, la solution de contournement à laquelle je pense est de toujours utiliser '$inc' :
cl.update( { "_id": ...}, { '$inc' : { 'field' : 1 } } );
Ensuite, au lieu de vérifier si vrai ou faux, vous pouvez vérifier si un élément est "vrai" :
cl.find( { "_id": ..., 'field' : { '$mod' : [ 2, 1 ] } );
IE, vous utilisez l'opérateur modulo pour voir s'il est pair ou inégal avec même étant "non défini" et inégal étant "défini". Si vous voulez avoir le comportement opposé (c'est-à-dire trouver tous les éléments qui n'ont pas l'indicateur défini), utilisez
[ 2, 0 ];