¿User_id de Facebook como ObjectId BSON de MongoDB?

Estoy reconstruyendo Amantes en Facebook con Sinatra & Redis. Me gusta Redis porque no tiene el largo (12 bytes) Objetos BSON y estoy almacenando conjuntos de user_ids de Facebook para cada usuario. Los conjuntos son solicitudes_enviadas, solicitudes_recibidas y relaciones, y todos contienen identificadores de usuario de Facebook.

Estoy pensando en cambiarme a MongoDB porque quiero usar su indexación geoespacial. Si lo hago, me gustaría usar los identificadores de usuario de FB como el campo _id porque quiero que los conjuntos sean pequeños y quiero que las respuestas JSON sean pequeñas. Pero, ¿es mejor usar BSON ObjectId (más eficiente para MongoDB) que solo un entero (fb user_id)?

preguntado el 09 de enero de 11 a las 00:01

intentaste preguntar en los foros de mongo también ?. -

Estoy en una situación similar. Tengo una gran cantidad de documentos pequeños con múltiples índices y una gran carga de inserción / inserción. Actualmente estoy tratando de reducir el tamaño de los índices para mejorar el rendimiento y (antes de hacer los experimentos), me pregunto si voy por el camino correcto ...

1 Respuestas

Hasta donde yo sé, no hay grandes diferencias de eficiencia. excepto en ciertos casos, como ordenar por fecha (ya que los ObjectId tienen la fecha y hora, etc.)

Por ejemplo, perdería la capacidad de ordenar simplemente por _id también perderías los beneficios por fragmentación y distribución. Aparte de eso, mientras que yo personalmente seguiría usando los ObjectId de todos modos ... siempre y cuando el int es unquie (por supuesto) ... debería estar bien.

Puesto que el _id siempre "regresa" en una consulta. Supongo que ahorraría un poco de tiempo y transferencia de datos (un poco).

Incluso puedes hacer tu _id una matriz si lo desea, y todo indexará muy bien esto https://www.youtube.com/watch?v=xB-eutXNUMXJtA&feature=youtu.be (no es que necesariamente recomiende eso la mayor parte del tiempo).

Ver también: Optimización de ID de objeto

contestado el 23 de mayo de 17 a las 15:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.