Sí, findAndModify lo resuelve.
Ref:MongoDB findAndModify de varios clientes "...Nota:Este comando obtiene un bloqueo de escritura en la base de datos afectada y bloqueará otras operaciones hasta que se complete; sin embargo, normalmente el bloqueo de escritura es de corta duración y es equivalente a otras operaciones similares de actualización()...."
Ref:http://docs. mongodb.org/manual/reference/method/db.collection.update/#db.collection.update "...Para las colecciones no fragmentadas, puede anular este comportamiento con el operador de aislamiento $aislado, que aísla la operación de actualización y bloquea otras operaciones de escritura durante la actualización. Consulte el operador de aislamiento..."
Ref:http://docs.mongodb.org/manual/reference/operator/ aislado/
Saludos, Moacy