MongoDB utilizó un bloqueo de escritura de todo el proceso para garantizar que solo se pueda realizar una operación de escritura (actualizar/insertar/eliminar) a la vez. Como tal, resuelve automáticamente problemas de simultaneidad ya que la simultaneidad de escritura simplemente no está permitida.
Si 4 hilos intentan una operación de actualización, uno de ellos tomará el bloqueo de escritura, actualizará y liberará el bloqueo. Después de eso, uno de los 3 restantes tomará el bloqueo, realizará su actualización, etc.
La concurrencia solo entra en juego si su operación no puede envolverse en una sola operación de escritura. Tenga en cuenta que para el caso de uso más común (Encontrar un médico, actualizarlo y agarrar la nueva versión atómicamente) MongoDB ofrece el comando "findAndModify", que hace precisamente eso: http://www.mongodb.org/display/DOCS/findAndModify+Command
ACTUALIZACIÓN: El bloqueo es más granular en estos días.
Gracias, entiendo por qué parecía conocimiento común. – lollancf37
De nada. Parece una característica limitante, pero como las escrituras son relativamente rápidas, rara vez es un problema de rendimiento. Esté atento al "% bloqueado" en mongostat para ver cuánto tiempo se pasa con el bloqueo mantenido. –