Básicamente voy a abofetear mi comentario como respuesta:
Para explicar más, cuando usa findAndModify
a $inc
y regresa de la colección de contadores que _id
entonces debería ser único que la ejecución de ese script y por lo tanto la consiguiente inserción de un documento. Básicamente, no habría condición de carrera en este método.
Esto significa que necesitará algún tipo de función principal como insertWithAI
que hará la primera devolución de llamada de usar findAndModify
para encadenar la última devolución de llamada de inserción, pero al final del día solo debería necesitar dos devoluciones de llamada.