SlideShare une entreprise Scribd logo
INDEXATION
Mme Ines Slimene
Ines_slimene@yahoo.fr
Plan
oCréation d’index
oUtilisation de explain
oTypes d’index :
◦ Index unique
◦ Index composé
◦ Index partiel
◦ Index textuel
◦ Index géo-spatiale
https://inesslimene.wixsite.com/moncours INDEXATION 2
Indexation
o Très similaire aux SGBDR, l'indexation dans MongoDB se fait sur un ou plusieurs champs.
o Permet d'améliorer les performances de recherche.
o Les indexes sont stockés au niveau des collections.
o Le fonctionnement interne est très proche de ce que l’on trouve dans les SGBD actuels.
o Un champ peu requêté n'a aucun intérêt à être indexé
o Utilisé dans une requête : select, update, sort
o Recherche plus rapide mais écriture plus lente car mise a jour des index
https://inesslimene.wixsite.com/moncours INDEXATION 3
Création et suppression
o Création d’un index
db.students.createIndex({"student_id" : 1},{name:"ind1",unique: true})
o Affichage des index d’une collection
db.students.getIndexes()
o Suppression d’un index
db.students.dropIndex("student_id" : 1)
db.students.dropIndex("ind1")
o Suppression de tous les indexes
db.students.dropIndexes()
https://inesslimene.wixsite.com/moncours INDEXATION 4
Index composé
db.students.createIndex({"student_id" : 1,"type":1, "score":1},{name:"ind2"})
o Dans le cas d’un index composé, MongoDB utilise l’index dans les requêtes
dont les critères de recherche sont :
◦ Student_id
◦ Student_id,type
◦ Student_id, type, score
o MongoDB ne peut pas utiliser cet index dans les requêtes dont les critères de
recherche sont :
◦ type
◦ score
◦ Type, score
https://inesslimene.wixsite.com/moncours INDEXATION 5
Index unique
o Index unique: pas de duplication de valeurs.
o Ne peut être crée que pour des champs a valeur unique.
db.students.createIndex({"student_id" : 1},{unique: true})
o Remarque :
oSi un document n’a pas de valeur pour le champ indexé, l’index aura la valeur
nulle.
oMongoDB permet l’insertion d’une seule valeur nulle pour un index unique
https://inesslimene.wixsite.com/moncours INDEXATION 6
Sparse
{"userid" : "newbie" }
{"userid" : "abby", "score" : 82 }
{"userid" : "nina", "score" : 90 }
o sparse : indexer que les documents contenant des valeurs non nulles de
student_id
db.scores.createIndex( { score: 1 } , { sparse: true } )
db.scores.find().sort( { score: -1 } ) // n’utilise pas l’index
Forcer l’utilisation de l’index db.scores.find().sort( { score: -1 } ).hint( { score: 1 } )
https://inesslimene.wixsite.com/moncours INDEXATION 7
Index partiel
o Une version plus général de sparse.
db.contacts.createIndex({ name: 1 },{ partialFilterExpression: { name: { $exists:
true } } })
o Exemple :
db.students.createIndex({ score: 1 },{ partialFilterExpression: { score: { $gt: 50 } }
})
o Utilisation index :
db. students.find( { score: 62 } ) // index utilisé
db. students.find( { score: 15 } ) // n’utilise pas l’index
https://inesslimene.wixsite.com/moncours INDEXATION 8
Utilisation de explain
explain : retourne les informations sur l’utilisation des index
db.students.find({student_id : 50}).explain("executionStats")
https://inesslimene.wixsite.com/moncours INDEXATION 9
Hint
o Forcer l’utilisation de l'index student_id
db.students.find().hint({« student_id" : 1})
https://inesslimene.wixsite.com/moncours INDEXATION 10
Recherche textuelle
db.livres.createIndex( { description: "text" } )
db.livres.find({$text:{$search:"serveur"}})
db.livres.find({$text:{$search:"serveur",$caseSensitive: true}})
db.livres.find({$text:{$search:"Javascript cote"}},
{score:{ $meta:"textScore"}}).sort({score:{$meta:"textScore"}})
db.livres.find({$text:{$search:""Javascript cote""}},{description:1})
https://inesslimene.wixsite.com/moncours INDEXATION 11
Index géo-spatiale
o On utilise l’index de type ‘2d’ pour les données stockées en tant que points avec deux coordonnées.
Exemple :
{"city": "GOODWATER", "loc": [-86.078149, 33.074642], "pop": 3813, "state": "AL", "_id": "35072"}
o Créer un index géo-spatiale. Type:1 : ordre ascendant
db.cities.createIndex({loc:'2d',type:1})
o Les indexes de type ‘2dsphere’ supportent les données stockées en tant qu’objet de type GeoJSON
Exemple :
{"_id":111,"location":{"coordinates":[-73.961704,40.662942],"type":"Point"},"name":"Wendy'S"}
o Créer un index géo-spatiale sphérique
db.stores.createIndex({location:'2dsphere'})
https://inesslimene.wixsite.com/moncours INDEXATION 12
Index géo-spatiale : Exemples
o index géo-spatiale
Exemple : Afficher les trois stores qui existent a proximité de la position[50,50]
db.cities.find({loc:{$near:[50,50]}}).limit(3)
o index géo-spatiale sphérique
Pour chercher un point de type GeoJSON, l’operateur $near requiert un index de type 2dsphere.
Exemple : Afficher les stores qui sont proche de max 1km du point dont les coordonnées sont
[-130, 39]
db.stores.find({ location:{ $near:{ $geometry: { type: "Point", coordinates: [-130, 39]},
$maxDistance:1000 } } })
https://inesslimene.wixsite.com/moncours INDEXATION 13

Contenu connexe

Similaire à Indexation

Accès aux bases de données via jdbc
Accès aux bases de données via jdbcAccès aux bases de données via jdbc
Accès aux bases de données via jdbc
Rachid Lajouad
 
Présentation mongoDB et mongoId
Présentation mongoDB et mongoIdPrésentation mongoDB et mongoId
Présentation mongoDB et mongoId
vtabary
 
MongoDB_presentation_ye.pptx
MongoDB_presentation_ye.pptxMongoDB_presentation_ye.pptx
MongoDB_presentation_ye.pptx
ZALIMAZA
 
MongoDB_presentation_p.pptx
MongoDB_presentation_p.pptxMongoDB_presentation_p.pptx
MongoDB_presentation_p.pptx
ZALIMAZA
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overview
Ludovic Piot
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic Search
Oxalide
 
Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL Serveur
Microsoft Technet France
 
Cours yeoman backbone box2d
Cours yeoman backbone box2dCours yeoman backbone box2d
Cours yeoman backbone box2dhugomallet
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015
Tarik Zakaria Benmerar
 
OOP and Design Patterns
OOP and Design PatternsOOP and Design Patterns
OOP and Design Patterns
Algiers Tech Meetup
 
MongoDB_presentation_example.pptx
MongoDB_presentation_example.pptxMongoDB_presentation_example.pptx
MongoDB_presentation_example.pptx
ZALIMAZA
 
Intro mongodb
Intro mongodbIntro mongodb
Intro mongodb
Ines Slimene
 
MongoDB_presentation_tts.pptx
MongoDB_presentation_tts.pptxMongoDB_presentation_tts.pptx
MongoDB_presentation_tts.pptx
ZALIMAZA
 
1425583156389.pptx
1425583156389.pptx1425583156389.pptx
1425583156389.pptx
tirike6016
 
MongoDB_presentation_o.pptx
MongoDB_presentation_o.pptxMongoDB_presentation_o.pptx
MongoDB_presentation_o.pptx
ZALIMAZA
 
MongoDB_presentation.pptx
MongoDB_presentation.pptxMongoDB_presentation.pptx
MongoDB_presentation.pptx
ZALIMAZA
 
Cours 3 les directives
Cours 3 les directivesCours 3 les directives
Cours 3 les directives
Aymen Sellaouti
 
MongoDB_presentation_xmls.pptx
MongoDB_presentation_xmls.pptxMongoDB_presentation_xmls.pptx
MongoDB_presentation_xmls.pptx
ZALIMAZA
 
MongoDB_presentation_Moyou.pptx
MongoDB_presentation_Moyou.pptxMongoDB_presentation_Moyou.pptx
MongoDB_presentation_Moyou.pptx
ZALIMAZA
 

Similaire à Indexation (20)

Accès aux bases de données via jdbc
Accès aux bases de données via jdbcAccès aux bases de données via jdbc
Accès aux bases de données via jdbc
 
Présentation mongoDB et mongoId
Présentation mongoDB et mongoIdPrésentation mongoDB et mongoId
Présentation mongoDB et mongoId
 
MongoDB_presentation_ye.pptx
MongoDB_presentation_ye.pptxMongoDB_presentation_ye.pptx
MongoDB_presentation_ye.pptx
 
MongoDB_presentation_p.pptx
MongoDB_presentation_p.pptxMongoDB_presentation_p.pptx
MongoDB_presentation_p.pptx
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overview
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic Search
 
Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL Serveur
 
Cours yeoman backbone box2d
Cours yeoman backbone box2dCours yeoman backbone box2d
Cours yeoman backbone box2d
 
Pg jsonb format 16-9
Pg jsonb format 16-9Pg jsonb format 16-9
Pg jsonb format 16-9
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015
 
OOP and Design Patterns
OOP and Design PatternsOOP and Design Patterns
OOP and Design Patterns
 
MongoDB_presentation_example.pptx
MongoDB_presentation_example.pptxMongoDB_presentation_example.pptx
MongoDB_presentation_example.pptx
 
Intro mongodb
Intro mongodbIntro mongodb
Intro mongodb
 
MongoDB_presentation_tts.pptx
MongoDB_presentation_tts.pptxMongoDB_presentation_tts.pptx
MongoDB_presentation_tts.pptx
 
1425583156389.pptx
1425583156389.pptx1425583156389.pptx
1425583156389.pptx
 
MongoDB_presentation_o.pptx
MongoDB_presentation_o.pptxMongoDB_presentation_o.pptx
MongoDB_presentation_o.pptx
 
MongoDB_presentation.pptx
MongoDB_presentation.pptxMongoDB_presentation.pptx
MongoDB_presentation.pptx
 
Cours 3 les directives
Cours 3 les directivesCours 3 les directives
Cours 3 les directives
 
MongoDB_presentation_xmls.pptx
MongoDB_presentation_xmls.pptxMongoDB_presentation_xmls.pptx
MongoDB_presentation_xmls.pptx
 
MongoDB_presentation_Moyou.pptx
MongoDB_presentation_Moyou.pptxMongoDB_presentation_Moyou.pptx
MongoDB_presentation_Moyou.pptx
 

Plus de Ines Slimene

Spark
SparkSpark
Redis
RedisRedis
Crud
CrudCrud
Cassandra
CassandraCassandra
Cassandra
Ines Slimene
 
Agregation
AgregationAgregation
Agregation
Ines Slimene
 
Pig
PigPig
Neo4j
Neo4jNeo4j
Mapreduce
MapreduceMapreduce
Mapreduce
Ines Slimene
 
Introduction nosql
Introduction nosqlIntroduction nosql
Introduction nosql
Ines Slimene
 
Introduction
IntroductionIntroduction
Introduction
Ines Slimene
 
Hive
HiveHive
Hdfs
HdfsHdfs
Hbase
HbaseHbase
Hadoop
HadoopHadoop
Hadoop
Ines Slimene
 

Plus de Ines Slimene (14)

Spark
SparkSpark
Spark
 
Redis
RedisRedis
Redis
 
Crud
CrudCrud
Crud
 
Cassandra
CassandraCassandra
Cassandra
 
Agregation
AgregationAgregation
Agregation
 
Pig
PigPig
Pig
 
Neo4j
Neo4jNeo4j
Neo4j
 
Mapreduce
MapreduceMapreduce
Mapreduce
 
Introduction nosql
Introduction nosqlIntroduction nosql
Introduction nosql
 
Introduction
IntroductionIntroduction
Introduction
 
Hive
HiveHive
Hive
 
Hdfs
HdfsHdfs
Hdfs
 
Hbase
HbaseHbase
Hbase
 
Hadoop
HadoopHadoop
Hadoop
 

Dernier

Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
Txaruka
 
Calendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdfCalendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdf
frizzole
 
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
BenotGeorges3
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Formation
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
MelDjobo
 
Exame DELF - A2 Francês pout tout public
Exame DELF - A2  Francês pout tout publicExame DELF - A2  Francês pout tout public
Exame DELF - A2 Francês pout tout public
GiselaAlves15
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
WarlockeTamagafk
 
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupeCours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Yuma91
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Oscar Smith
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
mrelmejri
 
Système de gestion des fichiers de amine
Système de gestion des fichiers de amineSystème de gestion des fichiers de amine
Système de gestion des fichiers de amine
sewawillis
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
Moukagni Evrard
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
IES Turina/Rodrigo/Itaca/Palomeras
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
cristionobedi
 
Contrôle fiscale en république de guinée
Contrôle fiscale en république de guinéeContrôle fiscale en république de guinée
Contrôle fiscale en république de guinée
bangalykaba146
 

Dernier (15)

Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
 
Calendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdfCalendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdf
 
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
 
Exame DELF - A2 Francês pout tout public
Exame DELF - A2  Francês pout tout publicExame DELF - A2  Francês pout tout public
Exame DELF - A2 Francês pout tout public
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
 
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupeCours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
 
Système de gestion des fichiers de amine
Système de gestion des fichiers de amineSystème de gestion des fichiers de amine
Système de gestion des fichiers de amine
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
 
Contrôle fiscale en république de guinée
Contrôle fiscale en république de guinéeContrôle fiscale en république de guinée
Contrôle fiscale en république de guinée
 

Indexation

  • 2. Plan oCréation d’index oUtilisation de explain oTypes d’index : ◦ Index unique ◦ Index composé ◦ Index partiel ◦ Index textuel ◦ Index géo-spatiale https://inesslimene.wixsite.com/moncours INDEXATION 2
  • 3. Indexation o Très similaire aux SGBDR, l'indexation dans MongoDB se fait sur un ou plusieurs champs. o Permet d'améliorer les performances de recherche. o Les indexes sont stockés au niveau des collections. o Le fonctionnement interne est très proche de ce que l’on trouve dans les SGBD actuels. o Un champ peu requêté n'a aucun intérêt à être indexé o Utilisé dans une requête : select, update, sort o Recherche plus rapide mais écriture plus lente car mise a jour des index https://inesslimene.wixsite.com/moncours INDEXATION 3
  • 4. Création et suppression o Création d’un index db.students.createIndex({"student_id" : 1},{name:"ind1",unique: true}) o Affichage des index d’une collection db.students.getIndexes() o Suppression d’un index db.students.dropIndex("student_id" : 1) db.students.dropIndex("ind1") o Suppression de tous les indexes db.students.dropIndexes() https://inesslimene.wixsite.com/moncours INDEXATION 4
  • 5. Index composé db.students.createIndex({"student_id" : 1,"type":1, "score":1},{name:"ind2"}) o Dans le cas d’un index composé, MongoDB utilise l’index dans les requêtes dont les critères de recherche sont : ◦ Student_id ◦ Student_id,type ◦ Student_id, type, score o MongoDB ne peut pas utiliser cet index dans les requêtes dont les critères de recherche sont : ◦ type ◦ score ◦ Type, score https://inesslimene.wixsite.com/moncours INDEXATION 5
  • 6. Index unique o Index unique: pas de duplication de valeurs. o Ne peut être crée que pour des champs a valeur unique. db.students.createIndex({"student_id" : 1},{unique: true}) o Remarque : oSi un document n’a pas de valeur pour le champ indexé, l’index aura la valeur nulle. oMongoDB permet l’insertion d’une seule valeur nulle pour un index unique https://inesslimene.wixsite.com/moncours INDEXATION 6
  • 7. Sparse {"userid" : "newbie" } {"userid" : "abby", "score" : 82 } {"userid" : "nina", "score" : 90 } o sparse : indexer que les documents contenant des valeurs non nulles de student_id db.scores.createIndex( { score: 1 } , { sparse: true } ) db.scores.find().sort( { score: -1 } ) // n’utilise pas l’index Forcer l’utilisation de l’index db.scores.find().sort( { score: -1 } ).hint( { score: 1 } ) https://inesslimene.wixsite.com/moncours INDEXATION 7
  • 8. Index partiel o Une version plus général de sparse. db.contacts.createIndex({ name: 1 },{ partialFilterExpression: { name: { $exists: true } } }) o Exemple : db.students.createIndex({ score: 1 },{ partialFilterExpression: { score: { $gt: 50 } } }) o Utilisation index : db. students.find( { score: 62 } ) // index utilisé db. students.find( { score: 15 } ) // n’utilise pas l’index https://inesslimene.wixsite.com/moncours INDEXATION 8
  • 9. Utilisation de explain explain : retourne les informations sur l’utilisation des index db.students.find({student_id : 50}).explain("executionStats") https://inesslimene.wixsite.com/moncours INDEXATION 9
  • 10. Hint o Forcer l’utilisation de l'index student_id db.students.find().hint({« student_id" : 1}) https://inesslimene.wixsite.com/moncours INDEXATION 10
  • 11. Recherche textuelle db.livres.createIndex( { description: "text" } ) db.livres.find({$text:{$search:"serveur"}}) db.livres.find({$text:{$search:"serveur",$caseSensitive: true}}) db.livres.find({$text:{$search:"Javascript cote"}}, {score:{ $meta:"textScore"}}).sort({score:{$meta:"textScore"}}) db.livres.find({$text:{$search:""Javascript cote""}},{description:1}) https://inesslimene.wixsite.com/moncours INDEXATION 11
  • 12. Index géo-spatiale o On utilise l’index de type ‘2d’ pour les données stockées en tant que points avec deux coordonnées. Exemple : {"city": "GOODWATER", "loc": [-86.078149, 33.074642], "pop": 3813, "state": "AL", "_id": "35072"} o Créer un index géo-spatiale. Type:1 : ordre ascendant db.cities.createIndex({loc:'2d',type:1}) o Les indexes de type ‘2dsphere’ supportent les données stockées en tant qu’objet de type GeoJSON Exemple : {"_id":111,"location":{"coordinates":[-73.961704,40.662942],"type":"Point"},"name":"Wendy'S"} o Créer un index géo-spatiale sphérique db.stores.createIndex({location:'2dsphere'}) https://inesslimene.wixsite.com/moncours INDEXATION 12
  • 13. Index géo-spatiale : Exemples o index géo-spatiale Exemple : Afficher les trois stores qui existent a proximité de la position[50,50] db.cities.find({loc:{$near:[50,50]}}).limit(3) o index géo-spatiale sphérique Pour chercher un point de type GeoJSON, l’operateur $near requiert un index de type 2dsphere. Exemple : Afficher les stores qui sont proche de max 1km du point dont les coordonnées sont [-130, 39] db.stores.find({ location:{ $near:{ $geometry: { type: "Point", coordinates: [-130, 39]}, $maxDistance:1000 } } }) https://inesslimene.wixsite.com/moncours INDEXATION 13