MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Generazione di autogenerazione _id rispetto a ObjectId in MongoDB

ObjectId Sono disponibili per le situazioni in cui non si dispone di una chiave univoca per ogni documento in una raccolta. Sono unici, quindi non devi preoccuparti dei conflitti e si scheggiano abbastanza bene in grandi distribuzioni senza troppe preoccupazioni (hanno pro e contro, leggi di più qui ).

Il ObjectId contiene anche il timestamp del client in cui è ObjectId è stato generato (a meno che il server DB non sia configurato per generare tutte le chiavi). Con ciò, come hai notato, puoi utilizzare il timestamp per eseguire alcune operazioni sulla data. Tuttavia, se prevedi di utilizzare Aggregation Framework, scoprirai che non puoi utilizzare un ObjectId in qualsiasi operazione sulla data attualmente (issue ). Se vuoi utilizzare l'AF, ti servirà un secondo campo che contenga la data, purtroppo memorizzandola doppiamente con ObjectId il valore interno di.

Se puoi essere certo che il _id che stai generando è unico, quindi non ci sono molte ragioni per usare un ObjectId nella tua struttura dati.