Configuración y Selección Básica de Campos
En este primer paso, se conectará al servidor MongoDB, creará una base de datos y una colección, e insertará algunos datos de ejemplo. Luego, realizará su primera transformación de datos seleccionando y renombrando campos específicos de los documentos.
Primero, abra su terminal y ejecute el Shell de MongoDB (mongosh). Este shell interactivo es la forma principal de interactuar con su instancia de MongoDB. Realizará todas las operaciones de base de datos dentro de este shell durante el resto del laboratorio.
mongosh
Una vez que esté dentro del Shell de MongoDB, su prompt cambiará. Ahora, cree y cambie a una nueva base de datos llamada bookstore. Si la base de datos no existe, este comando la creará.
use bookstore
A continuación, cree una colección llamada books e inserte tres documentos de ejemplo en ella utilizando el comando insertMany. Una colección es un grupo de documentos, similar a una tabla en una base de datos SQL.
db.books.insertMany([
{
title: "MongoDB Basics",
author: "Jane Smith",
price: 29.99,
pages: 250,
categories: ["Database", "Programming"]
},
{
title: "Python Deep Dive",
author: "John Doe",
price: 39.99,
pages: 450,
categories: ["Programming", "Python"]
},
{
title: "Data Science Handbook",
author: "Alice Johnson",
price: 49.99,
pages: 600,
categories: ["Data Science", "Programming"]
}
]);
Ahora que tiene datos, usemos el pipeline de agregación para transformarlos. El método aggregate toma una matriz de etapas, donde cada etapa realiza una operación sobre los datos. Nuestra primera etapa será $project, que remodela los documentos.
Ejecute el siguiente comando para seleccionar solo los campos title y author, renombrándolos a bookTitle y bookAuthor respectivamente.
db.books.aggregate([
{
$project: {
_id: 0,
bookTitle: "$title",
bookAuthor: "$author"
}
}
]);
Debería ver la siguiente salida:
[
{ "bookTitle": "MongoDB Basics", "bookAuthor": "Jane Smith" },
{ "bookTitle": "Python Deep Dive", "bookAuthor": "John Doe" },
{ "bookTitle": "Data Science Handbook", "bookAuthor": "Alice Johnson" }
]
Analicemos la etapa $project:
_id: 0 excluye el campo _id predeterminado de la salida. Por defecto, siempre se incluye.
bookTitle: "$title" crea un nuevo campo llamado bookTitle y le asigna el valor del campo original title. El prefijo $ indica que está haciendo referencia al valor de un campo.
bookAuthor: "$author" renombra de manera similar el campo author a bookAuthor.