La documentación mongodb para multikeys da un ejemplo de la consulta de campos de objetos incrustados en una matriz:En MongoDB, ¿cómo se indexan los campos de un objeto incrustado en una matriz?
http://www.mongodb.org/display/DOCS/Multikeys
Pero no hay ninguna explicación sobre cómo se crea un índice para esa situación. Crear un índice en la matriz no parece funcionar (usando el mecanismo de explicación puede ver que el índice no se usa).
detalles adicionales:
> // find posts where julie commented
> db.posts.find({ "comments.author" : "julie" })
{"title" : "How the west was won",
"comments" : [{"text" : "great!" , "author" : "sam"},
{"text" : "ok" , "author" : "julie"}],
"_id" : "497ce79f1ca9ca6d3efca325"}
Si lo hace db.articles.ensureIndex({ comments : 1 })
que no indexará los subcampos de los comentarios objetos sino sólo los comentarios propio objeto.
Así que lo siguiente sería utilizar el índice:
> db.posts.find({comments : { "author" : "julie", "text" : "ok" } })
Debido a que es búsqueda sobre los comentarios objetos
Pero los siguientes no utilizaría el índice:
> db.posts.find({ "comments.author" : "julie" })
Entonces, ¿cómo hacer ¿conseguiste mongodb para indexar para el segundo caso?
Atención a mostrar un poco de código en la forma en que está haciendo las cosas? – staackuser2
Por lo que puedo decir, sí te dice cómo agregar este índice: 'db.articles.ensureIndex ({tags: 1})'. –