Familiarícese con las consultas y operaciones de MongoDB con la ayuda de esta práctica guía.
MongoDB es una de las bases de datos NoSQL más deseadas y admiradas para el desarrollo profesional. Su flexibilidad, escalabilidad y capacidad para manejar grandes volúmenes de datos lo convierten en la mejor opción para las aplicaciones modernas. Si desea dominar las consultas y operaciones regulares de MongoDB, está en el lugar correcto.
Ya sea que esté buscando recuperar y manipular datos de manera eficiente, implementar modelos de datos sólidos o crear aplicaciones, adquirir una comprensión profunda de las consultas y operaciones comunes de MongoDB sin duda mejorará su habilidades.
1. Crear o cambiar bases de datos
Crear una base de datos localmente a través de MongoDB Shell es sencillo, especialmente si ha configurado un clúster remoto. Puede crear una nueva base de datos en MongoDB con el usar dominio:
use db_name
Si bien el comando anterior crea una nueva base de datos, puede usarlo para cambiar a una base de datos existente sin crear una nueva desde cero.
2. Soltar base de datos
Primero, cambie a la base de datos que desea descartar usando el usar comando como se hizo anteriormente. Luego suelte la base de datos usando el dropDatabase() dominio:
use db_name
db.dropDatabase()
3. Crear una colección
Para crear una colección, cambie a la base de datos de destino. Utilizar el crearColección() palabra clave para hacer una nueva colección MongoDB:
db.createCollection("collection_name")
Reemplazar nombre_de_la_colección con el nombre de la colección que hayas elegido.
4. Insertar documento en una colección
Mientras envía datos a una colección, puede insertar un solo documento o una serie de documentos.
Para insertar un solo documento:
db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})
También puede usar el método anterior para insertar una serie de documentos con una ID:
db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])
Para insertar muchos documentos a la vez, cada uno con ID separados, use el insertarmuchos palabra clave:
db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])
5. Obtener todos los documentos de una colección
Puede consultar todos los documentos de una colección utilizando el encontrar() palabra clave:
db.collection_name.find()
Lo anterior devuelve todos los documentos dentro de la colección especificada:
También puede limitar los datos devueltos a un número específico. Por ejemplo, puede usar el siguiente comando para obtener solo los dos primeros documentos:
db.collection_name.find().limit(2)
6. Filtrar documentos en una colección
Hay muchas formas de filtrar documentos en MongoDB. Considere los siguientes datos, por ejemplo:
Si consulta solo un campo específico en un documento, use el encontrar método:
db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})
Lo anterior devuelve todos los documentos donde el valor de Gustos es Palabra. Solo genera los nombres e ignora la identificación del documento.
También puede filtrar una colección por un factor numérico. Digamos que desea obtener los nombres de todos los usuarios mayores de 21 años, use el $ gt operador:
db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})
La salida se ve así:
Intenta reemplazar encontrar con Encuentra uno para ver que pasa Sin embargo, hay muchas otras palabras clave de filtrado:
- $lt: Todos los valores menores que el especificado.
- $ gte: Valores iguales o superiores al especificado.
- $lte: Valores menores o iguales al definido.
- $ equivalente: Obtiene todos los valores iguales al especificado.
- $ ne: Todos los valores no son iguales al especificado.
- $ en: use esto cuando realice consultas basadas en una matriz. Obtiene todos los valores que coinciden con cualquiera de los elementos de la matriz. El $ nueve palabra clave hace lo contrario.
7. Ordenar consultas
Ordenar ayuda a organizar la consulta en un orden específico. Puede ordenar en orden descendente o ascendente. Tenga en cuenta que la clasificación requiere una referencia numérica.
Por ejemplo, para ordenar en orden ascendente:
db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})
Para ordenar la consulta anterior en orden descendente, reemplace "1" con "-1".
db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})
8. Actualizar un documento
Las actualizaciones de MongoDB requieren operadores atómicos para especificar cómo desea que se realice la actualización. Aquí hay una lista de operadores atómicos de uso común que puede emparejar con una consulta de actualización:
- $establecer: agregue un nuevo campo o cambie un campo existente.
- $ empujar: inserta un nuevo elemento en una matriz. Combínalo con el $cada uno operador para insertar muchos elementos a la vez.
- $tirar: elimina un elemento de una matriz. úsalo con $ en para eliminar muchos elementos de una sola vez.
- $desarmado: eliminar un campo de un documento.
Para actualizar un documento y agregar un nuevo campo, por ejemplo:
db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})
Lo anterior actualiza el documento especificado como se muestra:
Eliminar el campo de correo electrónico es sencillo con el $desarmado operador:
db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})
Considere los siguientes datos de muestra:
Puede insertar un elemento en el existente elementos campo de matriz usando el $ empujar operador:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})
Aquí está la salida:
Utilizar el $cada uno operador para insertar muchos elementos a la vez:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})
Aquí está la salida:
Como se mencionó, el $tirar El operador elimina un elemento de una matriz:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})
Los datos actualizados se ven así:
Incluir la $ en palabra clave para eliminar muchos elementos en una matriz a la vez:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})
9. Eliminar un documento o un campo
El eliminarUno o eliminarmuchos palabra clave desecha un documento de una colección. Usar eliminarUno para eliminar un documento basado en un campo específico:
db.collection_name.deleteOne({"Name":"IDNoble"})
Si desea eliminar muchos documentos con claves en común, utilice eliminarmuchos en cambio. La consulta a continuación elimina todos los documentos que contienen Ajedrez como su Gustos.
db.collection.deleteMany({"Likes":"Chess"})
10. Operación de indexación
La indexación mejora el rendimiento de las consultas al optimizar la cantidad de documentos que MongoDB necesita escanear. A menudo, es mejor crear un índice en los campos que consulta con más frecuencia.
La indexación de MongoDB es similar a cómo usar índices para optimizar las consultas SQL. Por ejemplo, para crear un índice ascendente en el Nombre campo:
db.collection.createIndex({"Name":1})
Para enumerar sus índices:
db.collection.getIndexes()
Lo anterior es sólo un preámbulo. Hay varios otros métodos para creando un índice en MongoDB.
11. Agregación
La canalización de agregación, una versión mejorada de MapReduce, le permite ejecutar y almacenar cálculos complejos desde dentro de MongoDB. A diferencia de MapReduce, que requiere escribir el mapa y las funciones de reducción por separado. Funciones JavaScript, la agregación es sencilla y solo utiliza métodos integrados de MongoDB.
Considere los siguientes datos de ventas, por ejemplo:
Usando la agregación de MongoDB, puede calcular y almacenar la cantidad total de productos vendidos para cada categoría de la siguiente manera:
db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])
La consulta anterior devuelve lo siguiente:
Consultas maestras de MongoDB
MongoDB ofrece muchos métodos de consulta, incluidas funciones para mejorar el rendimiento de las consultas. Independientemente de su lenguaje de programación, las estructuras de consulta anteriores son rudimentarias para interactuar con una base de datos MongoDB.
Sin embargo, puede haber algunas discrepancias en las sintaxis base. Por ejemplo, mientras que algunos lenguajes de programación como Python reconocen los casos de serpiente, otros, incluido JavaScript, usan el caso de camello. Asegúrese de investigar qué funciona para la tecnología elegida.