Evitando Erros de Índice Único (E11000) ao Usar findOneAndUpdate com upsert no Mongoose
Como garantir unicidade de remessas em sistemas multi-tenant no MongoDB? Entenda por que erros E11000 acontecem, como alinhar filtros de upsert com índices únicos e evite armadilhas clássicas em modelagem de dados para operações críticas. ✅ Cenário Imagine um sistema de gestão de entregas com múltiplos clientes (empresas) utilizando a mesma plataforma. Cada cliente (representado por um tenantId) possui seus próprios pedidos internos (clientOrderId), que podem coincidir entre diferentes clientes, mas não dentro do mesmo cliente. Cada pedido tem uma única remessa associada, representada por um shipment com informações como nota fiscal, status e dados logísticos. Você precisa garantir que haja apenas uma remessa por pedido e por cliente — e que atualizações venham a sobrescrever remessas existentes se o pedido já existir.

Como garantir unicidade de remessas em sistemas multi-tenant no MongoDB? Entenda por que erros E11000 acontecem, como alinhar filtros de upsert com índices únicos e evite armadilhas clássicas em modelagem de dados para operações críticas.
✅ Cenário
Imagine um sistema de gestão de entregas com múltiplos clientes (empresas) utilizando a mesma plataforma. Cada cliente (representado por um tenantId
) possui seus próprios pedidos internos (clientOrderId
), que podem coincidir entre diferentes clientes, mas não dentro do mesmo cliente.
Cada pedido tem uma única remessa associada, representada por um shipment
com informações como nota fiscal, status e dados logísticos.
Você precisa garantir que haja apenas uma remessa por pedido e por cliente — e que atualizações venham a sobrescrever remessas existentes se o pedido já existir.