Pregunta

Me resulta difícil entender cómo se realiza exactamente la indexación en MultIweys en MongoDB.

Esto es lo que leí sobre MultIweys en MongoDB Docs en su sitio web:
1) "Crear un índice en un elemento de matriz da como resultado que la base de datos indexe cada elemento de la matriz"
2) "... indexará todas las etiquetas en el documento y creará entradas de índice para" X "," Y "y" Z "para ese documento".

Entonces, ¿qué significa exactamente por entradas de índice para ese documento? ¿Cada doctor recuerda las entradas, en cuyo caso la búsqueda será un escaneo de mesa completo? ¿O es el mismo índice B-Tree de MySQL, donde cada entrada de índice apuntará a múltiples documentos para cada ocurrencia respectiva, en cuyo caso estoy pensando demasiado?

Tomemos un ejemplo:
obj1 = {
name: "Apollo",
text: "Some text about Apollo moon landings",
tags: [ "moon", "apollo", "spaceflight", "nasa" ]
}

obj2 = {
name: "Atlantis",
text: "Some text about Atlantis flight missions",
tags: [ "space", "atlantis", "spaceflight", "nasa" ]
}

>db.articles.ensureIndex( { tags : 1 } )

¡Por favor ayúdame a entender! Gracias por adelantado.

¿Fue útil?

Solución

En este caso, su índice (que es un árbol B) se vería así:

 apollo => [ obj1 ]
 atlantis => [ obj2 ]
 moon => [ obj1 ]
 nasa  => [ obj1, obj2 ]
 space => [ obj2 ]
 spaceflight => [ obj1, obj2 ]

Este es solo un índice de árbol B "regular", excepto que cada documento puede aparecer más de una vez (parece una vez para cada valor de etiqueta único).

Otros consejos

Creo que no entendiste la diferencia entre los índices multiíndex y compuestos:

Los índices compuestos son índices definidos por el usuario para múltiples campos a la vez. Índices multykey: MongoDB Determine si el campo en el que se libera el índice es una matriz y crea un índice para cada uno de los elementos de la matriz, por ejemplo

db.user.enSureIndex ({"Dirección.street": 1});

En este caso y debido a que el campo de destino es una matriz, el índice almacenará todos los elementos, pero solo una vez.

Te recomiendo que eches un vistazo a este simple articlw que te aclarará dudas sobre tipos simples de imdex en MongoDB: http://mongodbspain.com/en/2014/01/24/mongodb-indexes-tart1/

Saludos,

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top