MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB C # Array index ou indexation des éléments internes des tableaux

Vous ne pouvez pas faire cela spécifiquement, vous ne pouvez pas indexer sur la valeur de la clé.

Une solution

Cependant, vous pouvez indexer les éléments d'un tableau.

Supposons que vos données ressemblent à ceci :

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

Vous feriez ce qui suit pour créer un index sur items.Key :

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

Lorsque vous effectuez les opérations suivantes, vous utiliserez l'index :

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

Cela limitera la recherche aux seuls éléments qui ont Key = "City" . Si c'est tout, alors cela n'aidera probablement pas.

Solution alternative

Pourquoi items un tableau? Ne pouvez-vous pas structurer les données comme ceci :

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

Vous pouvez maintenant indexer sur items.City.Value , c'est ce que vous recherchiez en premier lieu. Cela rend également la structure des données un peu plus petite.

Selon la nature de vos données, vous pouvez également consulter les index sparse pour vous aider à contrôler la taille de votre index.