MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Génération de _id vs génération automatique d'ObjectId dans MongoDB

ObjectId s sont là pour les situations où vous n'avez pas de clé unique pour chaque document d'une collection. Ils sont uniques, vous n'avez donc pas à vous soucier des conflits et ils se répartissent raisonnablement bien dans les grands déploiements sans trop de soucis (ils ont des avantages et des inconvénients, en savoir plus ici ).

L'ObjectId contient également l'horodatage du client où l'ObjectId a été généré (sauf si le serveur de base de données est configuré pour générer toutes les clés). Avec cela, comme vous l'avez remarqué, vous pouvez utiliser l'horodatage pour effectuer certaines opérations de date. Cependant, si vous prévoyez d'utiliser le cadre d'agrégation, vous constaterez que vous ne pouvez pas utiliser un ObjectId dans toutes les opérations de date actuellement (issue ). Si vous voulez utiliser l'AF, vous aurez besoin d'un deuxième champ qui contient la date, malheureusement en le stockant doublement avec le ObjectId la valeur interne de .

Si vous pouvez être assuré que le _id que vous générez est unique, alors il n'y a pas vraiment de raison d'utiliser un ObjectId dans votre structure de données.