sql >> Databasteknik >  >> NoSQL >> MongoDB

Generering av autogenerering av _id vs ObjectId i MongoDB

ObjectId s finns för situationer där du inte har en unik nyckel för varje dokument i en samling. De är unika, så du behöver inte oroa dig för konflikter och de skärs ganska bra i stora installationer utan alltför mycket oro (de har för- och nackdelar, läs mer här ).

ObjectId innehåller också tidsstämpeln för klienten där ObjectId genererades (såvida inte DB-servern är konfigurerad att generera alla nycklar). Med det, som du märkte, kan du använda tidsstämpeln för att utföra vissa datumoperationer. Men om du planerar att använda Aggregation Framework kommer du att upptäcka att du inte kan använda ett ObjectId i alla datumoperationer för närvarande (problem ). Om du vill använda AF, behöver du ett andra fält som innehåller datumet, tyvärr lagras det dubbelt med ObjectId s interna värde.

Om du kan vara säker på att _id du genererar är unik, så finns det inte mycket anledning att använda ett ObjectId i din datastruktur.




  1. Spring boot + Redis - Genererar en konstig nyckel

  2. MongoDB sammanfogar data inuti en array av objekt

  3. Mongoose flera anslutningar

  4. konvertera iso-datum till tidsstämpel i mongo-fråga