sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB C# Array index o indexación de elementos internos de matrices

No puede hacer esto específicamente, no puede indexar el valor de la clave.

Una solución

Sin embargo, puede indexar elementos en una matriz.

Supongamos que sus datos se ven así:

items:
  [
       { Key: "Name", Value: "Peter", Type:String },
       { Key: "Age", Value: "18", Type:int },
       { Key: "City", Value: "San Jose", Type:String },
       ...30 to 40 items.
  ]

Haría lo siguiente para crear un índice en items.Key :

 db.foo.ensureIndex( { 'items.Key' } )

Cuando haga lo siguiente, usará el índice:

 db.foo.find( { 'items.Key' : "City", 'items.value' : "San Jose" } )

Esto limitará la búsqueda a solo aquellos elementos que tengan Key = "City" . Si esto es todo, probablemente esto no ayude.

Solución alternativa

¿Por qué items ¿una matriz? ¿No puedes estructurar datos como este:

items:
  {
       "Name" : { Value: "Peter", Type:String },
       "Age" : { Value: "18", Type:int },
       "City" : { Value: "San Jose", Type:String },
       ...30 to 40 items.
  }

Ahora puede indexar en items.City.Value , que es lo que estabas buscando en primer lugar. Esto también hace que la estructura de datos sea un poco más pequeña.

Dependiendo de la naturaleza de sus datos, también puede consultar los índices dispersos para ayudar a controlar el tamaño de su índice.