MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como substituir IDs de objetos no Mongo db ao criar um aplicativo no Sails


Atenção :O ID do Mongo deve ser o único possível para escalar bem. O padrão ObjectId é composto por um carimbo de data/hora, ID de máquina, ID de processo e um valor de incremento aleatório. Deixá-lo apenas com o último o tornaria propenso a colisões.

No entanto, às vezes você quer muito embelezar o valor interminável do ObjectID (ou seja, para ser mostrado na URL após codificação ). Em seguida, considere usar uma estratégia de incremento atômico apropriada .

Substituindo o exemplo _id:
db.testSOF.insert({_id:"myUniqueValue", a:1, b:1})

Fazendo uma Sequência de incremento automático :
  • Usar coleção de contadores :Basicamente uma coleção separada que mantém o controle do último número da sequência. Pessoalmente, achei mais coeso armazenar a função findAndModify na coleção system.js, embora falta recursos do controle de versão.
  • Ciclo otimista

Editar:

Encontrei um problema em que o dono do sails-mongo dizia:

Ele menciona a primeira técnica que adicionei nesta resposta:Usar coleção de contadores . Na mesma edição, lewins mostra uma solução alternativa.