Indexs
Els indexs ajuden al motor de la bases de dades a realitzar consultes de manera molt més eficient.
Introducció
La quantitat de dades contingudes en una col·lecció afecta directament el rendiment de la cerca: com més gran sigui el conjunt de dades, més difícil serà per a MongoDB trobar els documents que coincideixen amb la consulta.
Els índexs són estructures de dades especials que emmagatzemen només un petit subconjunt de les dades contingudes en els documents d’una col·lecció per separat dels mateixos documents.
MongoDB crea un índex únic al camp _id durant la creació d’una col·lecció que impedeix als clients inserir dos documents amb el mateix valor per al camp _id. Aquest index no es pot eliminar.
PENDENT
Indexes
It is common to create indexes to improve query performance. Fortunately, MongoDB indexes can be easily created from the shell.
An indexing example only makes sense if you have a collection with many documents.
Therefore, you’ll add 20,000 simple documents to a numbers collection. Since the MongoDB shell is also a JavaScript interpreter, the code to accomplish this is simple:
demo> for (i=0; i < 20000; i++) { db.numbers.insertOne({num:i}) }
{
acknowledged: true,
insertedId: ObjectId('6782894472c54e457acb5b06')
}That’s a lot of documents, so don’t be surprised if the insertion takes a few seconds to complete. Once it returns, you can run a couple of queries to verify that all documents are present:
demo> db.numbers.countDocuments()
20000
demo> db.numbers.find()
[
{ _id: ObjectId('6782893c72c54e457acb0ce7'), num: 0 },
{ _id: ObjectId('6782893c72c54e457acb0ce8'), num: 1 },
{ _id: ObjectId('6782893c72c54e457acb0ce9'), num: 2 },
{ _id: ObjectId('6782893c72c54e457acb0cea'), num: 3 },
{ _id: ObjectId('6782893c72c54e457acb0ceb'), num: 4 },
{ _id: ObjectId('6782893c72c54e457acb0cec'), num: 5 },
{ _id: ObjectId('6782893c72c54e457acb0ced'), num: 6 },
{ _id: ObjectId('6782893c72c54e457acb0cee'), num: 7 },
{ _id: ObjectId('6782893c72c54e457acb0cef'), num: 8 },
{ _id: ObjectId('6782893c72c54e457acb0cf0'), num: 9 },
{ _id: ObjectId('6782893c72c54e457acb0cf1'), num: 10 },
{ _id: ObjectId('6782893c72c54e457acb0cf2'), num: 11 },
{ _id: ObjectId('6782893c72c54e457acb0cf3'), num: 12 },
{ _id: ObjectId('6782893c72c54e457acb0cf4'), num: 13 },
{ _id: ObjectId('6782893c72c54e457acb0cf5'), num: 14 },
{ _id: ObjectId('6782893c72c54e457acb0cf6'), num: 15 },
{ _id: ObjectId('6782893c72c54e457acb0cf7'), num: 16 },
{ _id: ObjectId('6782893c72c54e457acb0cf8'), num: 17 },
{ _id: ObjectId('6782893c72c54e457acb0cf9'), num: 18 },
{ _id: ObjectId('6782893c72c54e457acb0cfa'), num: 19 }
]
Type "it" for moreThe countDocuments() method shows that you have inserted 20,000 documents. The subsequent query shows the first 20 results (this number may be different in your shell).
You can show additional results with the it function:
demo> it
[
{ _id: ObjectId('6782893c72c54e457acb0cfb'), num: 20 },
{ _id: ObjectId('6782893c72c54e457acb0cfc'), num: 21 },
...The it function tells the shell to return the next set of results.
Next make a query:
demo> db.numbers.find({num:500})
[ { _id: ObjectId('6782893c72c54e457acb0edb'), num: 500 } ]Estàs llegint una vista prèvia.
Inicia sessió per llegir l'article complet. Qualsevol compte obre 4 articles gratuïts al mes; l'alumnat i el professorat llegeixen les pàgines del seu curs sense límit.
Inicia sessió