Crear referencias de documentos
En este paso, aprenderá a crear referencias de documentos en MongoDB, que es una técnica fundamental para establecer relaciones entre diferentes colecciones.
Primero, iniciemos la shell de MongoDB:
mongosh
Crearemos dos colecciones para demostrar la referencia de documentos: authors
y books
. Este es un escenario común en el que los libros están vinculados a sus autores.
Cree la colección de autores:
use library_database
db.authors.insertMany([
{
_id: ObjectId("660a1f5c9b8f8b1234567890"),
name: "Jane Austen",
nationality: "British"
},
{
_id: ObjectId("660a1f5c9b8f8b1234567891"),
name: "George Orwell",
nationality: "British"
}
])
Salida de ejemplo:
{
acknowledged: true,
insertedIds: {
'0': ObjectId("660a1f5c9b8f8b1234567890"),
'1': ObjectId("660a1f5c9b8f8b1234567891")
}
}
Ahora, creemos la colección de libros con referencias a los autores:
db.books.insertMany([
{
title: "Pride and Prejudice",
author_id: ObjectId("660a1f5c9b8f8b1234567890"),
year: 1813
},
{
title: "1984",
author_id: ObjectId("660a1f5c9b8f8b1234567891"),
year: 1949
}
])
Salida de ejemplo:
{
acknowledged: true,
insertedIds: {
'0': ObjectId("660b2a1c9b8f8b1234567892"),
'1': ObjectId("660b2a1c9b8f8b1234567893")
}
}
Verifiquemos las referencias consultando los libros con los detalles de sus autores:
db.books.aggregate([
{
$lookup: {
from: "authors",
localField: "author_id",
foreignField: "_id",
as: "author_details"
}
}
])
Esto demuestra cómo crear referencias de documentos en MongoDB. Hemos vinculado los libros a sus autores utilizando el campo author_id
, que contiene el ObjectId del autor correspondiente.