MongoDB: upsert com valores diferentes para atualização e inserção

Um pouco de contexto: tenho um documento para cada usuário que contém uma matriz com os últimos 20 eventos relacionados a um usuário. Como o MongoDB não possui esse recurso (para limitar matrizes dentro de um documento), pressionarei meu evento e exibirei o mais recente.

Meu problema: inicializar o documento (também conhecido como preenchimento de matriz com valores nulos). Eu quero atomicamente:

crie um documento contendo uma matriz com 20 valores nulos e pressione um valor, se o documento não existir

ou

atualizar documento (pressione um valor na matriz), se o documento existir

Você tem alguma outra sugestão? Um truque em que pensei seria declarar um índice com: unique e: dropDups, e sempre fazer uma inserção de inicialização.

Relacionado a:Implementação de matriz de tamanho fixo do MongoDB

questionAnswers(1)

yourAnswerToTheQuestion