Suponiendo que los 'elementos' (proporcionados como un parámetro en el método Set() a continuación) se definen como Lista (TM es un tipo de estructura, es decir, está hecho solo de propiedades) que contiene solo un elemento y 10 procesos que intentan escribir simultáneamente una actualización de los items ( sin añadir nada a la Lista):
Builders<TK>.Update.Set("Items", items);Una actualización significa que hay al menos un elemento en el BSON con un valor modificado.
¿Qué hará MongoDB en tal caso?
¿Eventualmente sobrescribirá con el último proceso en ese único elemento (dejando esa Lista con un solo elemento)?
¿O agregará 10 de esos elementos (elementos) a esa Lista?
No sé cómo funciona con acceso paralelo. Pero el operador Establecer siempre sobrescribe el valor con un insertado.
Para agregar nuevos valores a una matriz, debe usar el operador addToSet (solo agrega valores nuevos) oel operador push .
También puede acceder a ellos como constructores:
Builders<TA>.Update.AddToSet Builders<TA>.Update.Push