2011-10-14 12 views
22

Estoy desarrollando una API usando Codeigniter y MongoDB. En este sistema estoy guardando el nombre completo y _ID de los usuarios que el usuario seleccionado está siguiendo.Tienda _Id como objeto o cadena en MongoDB?

¿Qué es lo mejor para hacer con respecto al _Id? ¿Almacenarlo como un objeto o como una cadena? Si lo almaceno como un objeto, necesito convertirlo a una cadena cuando hago eco de seguidores; de lo contrario, el resultado es extraño.

Mi pregunta es realmente. ¿Está bien almacenar el ID como una cadena en lugar de como un objeto? ¿Cuál es la desventaja de almacenar como cadena?

Agradecido por todas las entradas!

Respuesta

18

El rendimiento de las solicitudes (y actualizaciones) es realmente mejor con objectid. Además, los objectid son bastante pequeños en el espacio.

Desde el doc oficial:

BSON incluye un tipo de datos de datos binarios para almacenar matrices de bytes. Usando esto hará que los valores de identificación, y sus respectivas claves en el índice _id , sean dos veces más pequeños.

aquí son 2 enlaces que pueden ayudarle a: - http://www.mongodb.org/display/DOCS/Optimizing+Object+IDs - http://www.mongodb.org/display/DOCS/Object+IDs

2

Cuando usa ObjectId, genera _id como un valor único en todas sus computadoras. Entonces, si usas Sharding, no te preocupes por tus conflictos _id. Vea cómo se genera ObjectId en specification
Pero si utiliza una cadena, debe generarla cuidadosamente.

Cuestiones relacionadas