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

Geração de geração automática de _id vs. ObjectId no MongoDB


ObjectId s existem para situações em que você não tem uma chave exclusiva para cada documento em uma coleção. Eles são únicos, então você não precisa se preocupar com conflitos e eles fragmentam razoavelmente bem em grandes implantações sem muita preocupação (eles têm prós e contras, leia mais aqui ).

O ObjectId também contém o timestamp do cliente onde o ObjectId foi gerado (a menos que o servidor de banco de dados esteja configurado para gerar todas as chaves). Com isso, como você notou, você pode usar o timestamp para realizar algumas operações de data. No entanto, se você planeja usar o Aggregation Framework, descobrirá que não pode usar um ObjectId em qualquer data atual (emissão ). Se você quiser usar o AF, precisará de um segundo campo que contenha a data, infelizmente armazenando-o duplamente com o ObjectId valor interno de.

Se você pode ter certeza de que o _id você está gerando é único, então não há muita razão para usar um ObjectId em sua estrutura de dados.