Escribe para buscar…

Indexs

Els indexs ajuden al motor de la bases de dades a realitzar consultes de manera molt més eficient.

Esta página todavía no se ha traducido — se muestra en su idioma original:English

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 more

The 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 leyendo una vista previa.

Inicia sesión para leer el artículo completo. Cualquier cuenta abre 4 artículos gratuitos al mes; el alumnado y el profesorado leen las páginas de su curso sin límite.

Iniciar sesión