Personnellement, je blâme votre code. Je contourne parfaitement ce problème dans mes applications en codant de la bonne manière. Je convertis en chaîne dans le code pour comparer et je m'assure que tout ce qui ressemble à un ObjectId
est en fait utilisé comme un ObjectId
.
Il est bon de noter qu'entre le ObjectId
(http://docs.mongodb.org/manual/reference/object-id/) et sa représentation hexadécimale il y a en fait 12 octets de différence, le ObjectId
étant de 12 octets et sa représentation hexadécimale étant de 24.
Il ne s'agit pas seulement d'efficacité de stockage, mais aussi d'index; non seulement parce qu'ils sont plus petits mais aussi depuis le ObjectId
peut être utilisé d'une manière spéciale pour s'assurer que seules des parties de l'index sont chargées ; les pièces utilisées. Cela devient plus visible lors de l'insertion, où seule la dernière partie de cet index doit être chargée pour garantir l'unicité. Vous ne pouvez pas garantir un tel comportement avec sa représentation hexadécimale.
Je vous déconseille fortement d'utiliser le OjbectId
la représentation hexadécimale. Si vous voulez "vous simplifier la vie", vous feriez mieux de créer un autre _id
qui est plus petit mais tout aussi unique et convivial pour les index.