Saat ini, saya tidak berpikir itu mungkin untuk melakukan ini dengan satu operasi. Operator bitwise (http://www.mongodb.org/display/DOCS/Updating#Updating-%24bit) belum memiliki '$xor' meskipun saya memiliki patch untuk itu.
Saat ini solusi yang saya pikirkan adalah dengan selalu menggunakan '$inc':
cl.update( { "_id": ...}, { '$inc' : { 'field' : 1 } } );
Kemudian alih-alih memeriksa benar atau salah, Anda dapat memeriksa apakah suatu item "benar":
cl.find( { "_id": ..., 'field' : { '$mod' : [ 2, 1 ] } );
IE, Anda menggunakan operator modulo untuk melihat apakah itu genap atau tidak rata bahkan dengan "tidak disetel", dan tidak merata menjadi "ditetapkan". Jika Anda ingin memiliki perilaku yang berlawanan (yaitu, temukan semua item yang tidak memiliki flag yang disetel), gunakan
[ 2, 0 ];