MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Generierung der automatischen Generierung von _id vs. ObjectId in MongoDB

ObjectId s sind für Situationen da, in denen Sie nicht für jedes Dokument in einer Sammlung einen eindeutigen Schlüssel haben. Sie sind einzigartig, sodass Sie sich keine Sorgen um Konflikte machen müssen, und sie teilen sich in großen Bereitstellungen ohne allzu große Sorgen recht gut (sie haben Vor- und Nachteile, lesen Sie mehr hier ).

Die ObjectId enthält auch den Zeitstempel des Clients, wobei die ObjectId generiert wurde (es sei denn, der DB-Server ist so konfiguriert, dass alle Schlüssel generiert werden). Damit können Sie, wie Sie bemerkt haben, den Zeitstempel verwenden, um einige Datumsoperationen durchzuführen. Wenn Sie jedoch das Aggregation Framework verwenden möchten, werden Sie feststellen, dass Sie keine ObjectId verwenden können derzeit in allen Datumsoperationen (Ausgabe ). ). Wenn Sie den AF verwenden möchten, benötigen Sie ein zweites Feld, das das Datum enthält, das leider doppelt mit der ObjectId gespeichert wird 's interner Wert.

Wenn Sie sicher sein können, dass die _id Sie generieren eindeutig ist, gibt es keinen Grund, eine ObjectId zu verwenden in Ihrer Datenstruktur.