Sommaire

Indexation des objets et des tableaux Indexation:objets Indexation:tableaux

L’indexation des documents contenus dans des documents se fait sensiblement de la même manière que pour un champ de type scalaire. Supposons que certains des documents de notre collection personnes contiennent désormais un sous-document à la clé adresse contenant les détails de l’adresse postale d’un individu. Pour illustrer cela, mettons à jour les informations relatives aux époux Lejeune :

db.personnes.updateMany( 
  {"nom": "Lejeune"}, 
  {$set : { 
    "adresse": { 
      "num": 546, 
      "voie": "rue", 
      "nom": "Descartes", 
      "code": 71230, 
      "ville": "Saint-Vallier" 
    } 
  } 
})

Puis créons un index sur le champ code du document imbriqué dans la clé adresse :

db.personnes.createIndex({"adresse.code": 1}, {"name": "idx_adr_cod"})

Cette requête pourra se baser dessus :

db.personnes.find({"adresse.code" : 71230})

Sachez qu’il est tout à fait possible d’indexer le sous-document adresse au complet :

db.personnes.createIndex({"adresse": 1}, {"name": "idx_adr_cmplt"})

Cette requête qui fait usage ...