Actualización de gran cantidad de registros en una colección.

Tengo colección llamadaTimeSheet teniendo pocos miles de registros ahora. Esto eventualmente aumentará a 300 millones de registros en un año. En esta colección incrusté algunos campos de otra colección llamadaDepartment que en su mayoría no recibirá actualizaciones y solo rara vez se actualizarán algunos registros. Rara vez me refiero solo una o dos veces al año y tampoco todos los registros, solo menos del 1% de los registros de la colección.

La mayoría de las veces, una vez que se crea un departamento, no habrá ninguna actualización, incluso si hay una actualización, se realizará inicialmente (cuando no haya muchos registros relacionados en TimeSheet)

Ahora, si alguien actualiza un departamento después de un año, en el peor de los casos, hay posibilidades de recolecciónTimeSheet Tendrá unos 300 millones de registros en total y alrededor de 5 millones de registros coincidentes para el departamento que se actualiza. La condición de consulta de actualización estará en un campo de índice.

Ya que esta actualización requiere mucho tiempo y crea bloqueos, me pregunto si hay alguna mejor manera de hacerlo. Una opción que estoy pensando es ejecutar la consulta de actualización en lotes agregando una condición extra comoUpdatedDateTime> somedate && UpdatedDateTime < somedate.

Otros detalles:

Un tamaño de documento único podría ser de aproximadamente 3 o 4 KB Tenemos un conjunto de réplicas que contiene tres réplicas.

¿Hay alguna otra forma mejor de hacer esto? ¿Qué opinas sobre este tipo de diseño? ¿Qué piensas si hay números que doy menos como a continuación?

1) 100 millones de registros totales y 100,000 registros coincidentes para la consulta de actualización

2) 10 millones de registros totales y 10,000 registros coincidentes para la consulta de actualización

3) 1 millón de registros totales y 1000 registros coincidentes para la consulta de actualización

Nota: Los nombres de la colección.department ytimesheet, y su propósito es ficticio, no las colecciones reales, pero las estadísticas que he dado son ciertas.

Respuestas a la pregunta(1)

Su respuesta a la pregunta