many - MongoDB almacenando arrays de ObjectId''s
mongodb reference (2)
A menos que tenga una buena razón para no hacerlo, almacénelos como una matriz de ObjectIds. Es más compacto (12 bytes vs. 24) y refleja con mayor precisión lo que está almacenado. También puede habilitar el soporte a nivel de controlador para las siguientes referencias de ObjectId.
En mi base de datos tengo que almacenar una matriz de identificadores de objetos. ¿Qué debo usar? Algo como esto:
[ObjectId("50350e12a36feb1be6000364"), ObjectId("57350e12a37fef1be6000922"), ObjectId("10350e17d34ffb1be6200925")]
o algo como esto:
["50350e12a36feb1be6000364", "57350e12a37fef1be6000922", "10350e17d34ffb1be6200925"]
Podría ahorrar espacio con el segundo y luego convertirlo en ObjectId
, pero ¿estoy perdiendo algo al usar este enfoque? ¿Se comportan los ObjectId
s como claves foráneas en bases de datos relacionales?
Definitivamente me gustaría ir con el primer enfoque, almacenando los ObjectId
s directamente. Esto ahorra espacio, ya que ObjectId
tiene 12 bytes, mientras que la segunda cadena de aproximación es de 24 bytes.
Además, si los ObjectId
s se utilizan para recuperar los objetos más tarde, el almacenamiento como ObjectId
ahorra algunos problemas.