Прямо сейчас, я не думаю, что это возможно сделать за одну операцию.Битовые операторы (http://www.mongodb.org/display/DOCS/Updating#Updating-%24bit) еще не имеют $ xor, хотя у меня есть патч для него.
Сейчас я думаю, что обходной путь - это всегда использовать '$ inc':
cl.update( { "_id": ...}, { '$inc' : { 'field' : 1 } } );
Тогда вместо проверки на true или false вы можете проверить, является ли элемент «true»:
cl.find( { "_id": ..., 'field' : { '$mod' : [ 2, 1 ] } );
IE, вы используете оператор по модулю, чтобы увидеть, является ли он дажеили неравномерно, даже будучи «неустановленным», и неравномерно «установленным». Если вы хотите иметь противоположное поведение (т. е. найти все элементы, для которых не установлен флаг), тогда используйте
[ 2, 0 ];