Op dit moment denk ik niet dat het mogelijk is om dit met één operatie te doen. De bitsgewijze operators (http://www.mongodb.org/display/DOCS/Updating#Updating-%24bit) hebben nog geen '$xor', hoewel ik er een patch voor heb.
Op dit moment is de tijdelijke oplossing die ik denk, door altijd '$inc' te gebruiken:
cl.update( { "_id": ...}, { '$inc' : { 'field' : 1 } } );
In plaats van te controleren op waar of onwaar, kunt u controleren of een item "waar" is:
cl.find( { "_id": ..., 'field' : { '$mod' : [ 2, 1 ] } );
IE, u gebruikt de modulo-operator om te zien of het even of ongelijk is, waarbij zelfs "uitgeschakeld" is en ongelijk "ingesteld". Als u het tegenovergestelde gedrag wilt hebben (dwz alle items zoeken waarvoor de vlag niet is ingesteld), gebruik dan
[ 2, 0 ];