with sort gte descending mongodb

sort - ¿Cómo se generan los ObjectIds de MongoDB?



order mongodb find (5)

¿Son algo al azar?

Quiero decir ... ¿la gente sería capaz de separarlos?


Generacion

Generalmente son generados en el lado del cliente por el propio controlador. Por ejemplo, en ruby, BSON :: ObjectID se puede usar:

También puedes generar tus propios ObjectIds. Esto es particularmente útil si desea utilizar identificadores comerciales.

Rompibilidad

  • Cuando se utiliza ObjectIds generados por el controlador, es bajo
  • Cuando se utiliza el propio ID de empresa, es un poco más alto dependiendo de su previsibilidad (inicio de sesión, identificadores consecutivos ...)

Aquí hay una implementación javascript del MongoDB ObjectID ( http://jsfiddle.net/icodeforlove/rN3zb/ )

function ObjectIdDetails (id) { return { seconds: parseInt(id.slice(0, 8), 16), machineIdentifier: parseInt(id.slice(8, 14), 16), processId: parseInt(id.slice(14, 18), 16), counter: parseInt(id.slice(18, 24), 16) }; }

Entonces, si tienes suficientes de ellos, filtran bastante información sobre tu infraestructura. Y también sabes las fechas de creación de objetos para todo.

IE: cuántos servidores tiene y cuántos procesos está ejecutando cada servidor.


Desde los links documento oficial de MongoDB.
muestra :

ObjectId
Los ObjectIds son pequeños, probablemente únicos, rápidos de generar y ordenados. Los valores de ObjectId constan de 12 bytes, donde los primeros cuatro bytes son una marca de tiempo que refleja la creación del ObjectId. Específicamente:

un valor de 4 bytes que representa los segundos desde la época de Unix,
un valor aleatorio de 5 bytes, y
Un contador de 3 bytes, comenzando con un valor aleatorio.
En MongoDB, cada documento almacenado en una colección requiere un campo _id único que actúa como clave principal. Si un documento insertado omite el campo _id, el controlador MongoDB genera automáticamente un ObjectId para el campo _id.


Los controladores de base de datos MongoDB generan de forma predeterminada un identificador de ID de objeto que se asigna al campo _id de cada documento. En muchos casos, el ID de objeto se puede utilizar como un identificador único en una aplicación.

ObjectID es un número de 96 bits que se compone de la siguiente manera:

un valor de 4 bytes que representa los segundos desde la época de Unix (que no se quedará sin segundos hasta el año 2106)

un identificador de máquina de 3 bytes (generalmente derivado de la dirección MAC),

un ID de proceso de 2 bytes, y

Un contador de 3 bytes, comenzando con un valor aleatorio.


No son aleatorios y pueden predecirse fácilmente:

Un BSON ObjectID es un valor de 12 bytes que consiste en una marca de tiempo de 4 bytes (segundos desde la época), una identificación de máquina de 3 bytes, una identificación de proceso de 2 bytes y un contador de 3 bytes

http://www.mongodb.org/display/DOCS/Object+IDs