2010-01-04 11 views
7

¿Cuál es la mejor manera de realizar un seguimiento de las etiquetas únicas para una colección de documentos de millones de elementos grandes? La forma normal de etiquetar parece estar indexando multiefectos. Sin embargo, con frecuencia necesitaré obtener todas las claves únicas. Tampoco tengo acceso al nuevo comando "distinct" de mongodb, ya que mi controlador, erlmongo, no parece implementarlo aún.MongoDB: ¿Cuál es una buena forma de obtener una lista de todas las etiquetas únicas?

Respuesta

10

Incluso si su controlador no implementa distintos, puede implementarlo usted mismo. En JavaScript (lo siento, no sé Erlang, pero debería traducirse bastante directa) puede decir:

result = db.$cmd.findOne({"distinct" : "collection_name", "key" : "tags"}) 

Por lo tanto, esto es: haces un findOne en los "$ cmd" colección de cualquier base de datos que' re usando Pase el nombre de la colección y la clave sobre la que desea ejecutar distinct.

Si alguna vez necesita un comando que su controlador no proporciona un ayudante, puede consultar http://www.mongodb.org/display/DOCS/List+of+Database+Commands para obtener una lista algo completa de los comandos de la base de datos.

+0

Awwwwww, sí. :) –

1

Sé que esta es una pregunta anterior, pero tuve el mismo problema y no pude encontrar una solución real en PHP para ello.

Así que se le ocurrió esto:

http://snipplr.com/view/59334/list-of-keys-used-in-mongodb-collection/

+0

¡Bienvenido a Stack Overflow! Si bien esto podría responder teóricamente a la pregunta, [sería preferible] (http://meta.stackexchange.com/q/8259) incluir aquí las partes esenciales de la respuesta y proporcionar el enlace de referencia. – oers

1

John, puede que le resulte útil el uso de variedades, una herramienta de código abierto para analizar el esquema de una colección: https://github.com/jamescropcho/variety

Tal vez usted podría funcionar Varíe cada N horas en segundo plano, y consulte la recién creada base de datos de resultados múltiples para recuperar una lista de claves únicas que comienzan con una cadena dada (es decir, son descendientes de un padre específico).

Deseo saber si tiene alguna pregunta o si necesita más información.

¡Buena suerte!

Cuestiones relacionadas