Establecer Relaciones entre Documentos
En este primer paso, creará dos colecciones separadas y establecerá una relación entre ellas. Modelaremos un escenario común: una base de datos de biblioteca con authors (autores) y books (libros). Cada libro hará referencia a su autor.
Primero, abra la MongoDB Shell. Esta interfaz interactiva de línea de comandos le permite interactuar con su instancia de MongoDB.
mongosh
Una vez dentro de la shell, verá un prompt test>. Cambiemos a una nueva base de datos llamada library_database. Si la base de datos no existe, MongoDB la creará por usted cuando almacene datos por primera vez.
use library_database
Ahora, creemos la colección authors insertando dos documentos. Cada documento tiene un _id único de tipo ObjectId, que utilizaremos para la referenciación.
db.authors.insertMany([
{
_id: ObjectId("660a1f5c9b8f8b1234567890"),
name: "Jane Austen",
nationality: "British"
},
{
_id: ObjectId("660a1f5c9b8f8b1234567891"),
name: "George Orwell",
nationality: "British"
}
]);
Debería ver una confirmación de que los documentos se insertaron correctamente.
Ejemplo de salida:
{
"acknowledged": true,
"insertedIds": {
"0": ObjectId("660a1f5c9b8f8b1234567890"),
"1": ObjectId("660a1f5c9b8f8b1234567891")
}
}
A continuación, cree la colección books. En cada documento de libro, el campo author_id almacenará el ObjectId del autor correspondiente de la colección authors. Esto crea el enlace entre un libro y su autor.
db.books.insertMany([
{
title: "Pride and Prejudice",
author_id: ObjectId("660a1f5c9b8f8b1234567890"),
year: 1813
},
{
title: "1984",
author_id: ObjectId("660a1f5c9b8f8b1234567891"),
year: 1949
}
]);
Ejemplo de salida:
{
"acknowledged": true,
"insertedIds": {
"0": ObjectId("660b2a1c9b8f8b1234567892"),
"1": ObjectId("660b2a1c9b8f8b1234567893")
}
}
Ahora ha creado con éxito dos colecciones y enlazado documentos en la colección books con documentos en la colección authors. Mantenga la shell de MongoDB abierta para el siguiente paso.