Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
/ / /

Realizar operaciones CRUD

En esta guía, puedes aprender cómo usar el Backend de Django MongoDB para ejecutar operaciones de crear, leer, actualizar y eliminar (CRUD) en tu colección de MongoDB.

También puedes usar el sitio de administración de Django para editar tus modelos y sus colecciones correspondientes en una interfaz web. Para más información, consulta el Entrada del sitio de administración de Django en la documentación de Django.

Puedes utilizar métodos proporcionados por Django QuerySet API para ejecutar operaciones CRUD. Para ejecutar estas operaciones, puedes llamar los métodos QuerySet en el administrador de tu modelo. La clase Manager gestiona las operaciones de la base de datos y permite interactuar con los datos de MongoDB haciendo referencia a modelos de Django. Por defecto, Django agrega un Manager llamado objects a cada clase de modelo.

Tip

Para obtener más información sobre la API de Django,QuerySet consulte en la documentación QuerySet de Django.

Esta guía muestra cómo utilizar los siguientes métodos de QuerySet:

  • create(): Inserta documentos en la colección

  • filter() y get(): Recupera uno o varios documentos de la colección

  • update(): Actualiza los documentos de la colección

  • delete(): Elimina documentos de la colección

Los ejemplos de esta guía utilizan el Movie modelo, que representa la sample_mflix.movies colección de los conjuntos de datos de muestra de Atlas. La Movie clase del modelo tiene la siguiente definición:

from django.db import models
from django_mongodb_backend.fields import ArrayField
class Movie(models.Model):
title = models.CharField(max_length=200)
plot = models.TextField(blank=True)
runtime = models.IntegerField(default=0)
released = models.DateTimeField("release date", null=True, blank=True)
genres = ArrayField(models.CharField(max_length=100), null=True, blank=True)
class Meta:
db_table = "movies"
managed = False
def __str__(self):
return self.title

El modelo Movie incluye una clase interna Meta, que especifica los metadatos del modelo, y un método __str__(), que define la representación de cadena del modelo. Para obtener más información sobre estas características del modelo, consulte Defina un modelo en la guía Crear modelos.

Puedes usar la shell interactiva de Python para ejecutar los ejemplos de código. Para ingresar a la shell, ejecute el siguiente comando desde el directorio raíz de su Proyecto:

python manage.py shell

Después de ingresar al shell de Python, asegúrese de importar los siguientes modelos y módulos:

from <your application name>.models import Movie
from django.utils import timezone
from datetime import datetime

Para aprender a crear una aplicación de Django que use el modelo Movie y el shell interactivo de Python para interactuar con documentos de MongoDB, visita el tutorial de Introducción a Django MongoDB Backend.

Para insertar un documento en una colección, llama al método create() en el gestor de tu modelo. Pasa los nombres y valores de los campos del nuevo documento como argumentos al método create().

El siguiente ejemplo llama al método create() para insertar un documento en la colección sample_mflix.movies. El nuevo documento tiene un valor de title de "Poor Things" y un valor de runtime de 141:

Movie.objects.create(title="Poor Things", runtime=141)

El método create() permite crear un nuevo objeto Movie y guardar el objeto en MongoDB en una única llamada de método. Alternativamente, puedes crear un objeto Movie y llamar a save(), como se muestra en el siguiente código:

movie = Movie(title="Poor Things", runtime=141)
movie.save()

Tip

Para obtener más información sobre el método create(), consulta create en la documentación de Django.

Para recuperar documentos de tu colección, llama al método filter() en el administrador de tu modelo. Pasa un filtro de query, o un criterio que especifique qué documentos recuperar, como argumento al método filter().

Alternativamente, puedes llamar al método get() para recuperar un solo documento que coincida con tu consulta.

El siguiente ejemplo llama al método filter() para recuperar documentos de la colección sample_mflix.movies. La query devuelve Movie objetos que representan películas estrenadas el 1 de enero de 2000:

Movie.objects.filter(released=timezone.make_aware(datetime(2000, 1, 1)))
<QuerySet [<Movie: The Bumblebee Flies Anyway>, <Movie: Angels of the Universe>,
<Movie: First Person Plural>, <Movie: Just, Melvin: Just Evil>, <Movie: Sound and Fury>,
<Movie: Peppermint Candy>]>

Tip

Para obtener más información sobre el método filter(), consulta filter en la documentación de Django.

Para recuperar solo un documento que coincida con sus criterios de query, llame al método get() y pase un filtro de query como argumento. El siguiente ejemplo recupera un documento en el que el valor de title es "Boyhood":

Movie.objects.get(title="Boyhood")
<Movie: Boyhood>

Importante

Si tu query no coincide con ningún documento o con varios documentos, el método get() genera un error. Para recuperar un documento de una query que podría coincidir con múltiples, encadena el método first() a filter(), como se muestra en el siguiente código:

Movie.objects.filter(title="Boyhood").first()

Tip

Para obtener más información sobre el método get(), consulta get en la documentación de Django.

Para modificar documentos de una colección, llame a los métodos filter() y update() del administrador de su modelo. Pase un filtro de consulta, o criterios que especifiquen qué documentos actualizar, como argumento al método filter(). Luego, pase los campos y valores que desea actualizar como argumentos al método update().

El siguiente ejemplo llama al método update() para modificar documentos en la colección sample_mflix.movies. El código coincide con un documento que tiene un valor de title de "High Fidelity" y añade un campo plot:

Movie.objects.filter(
title="High Fidelity").update(
plot="Rob, a record store owner, recounts his top five breakups,including the one in progress.")
// Outputs the number of modified documents
1

Tip

Para obtener más información sobre el método update(), consulta update en la documentación de Django.

Para eliminar documentos de una colección, llame a los métodos filter() y delete() en el administrador de su modelo. Pase un filtro de consulta o un criterio que especifique qué documentos eliminar como argumento al método filter().

El siguiente ejemplo llama al método delete() para borrar documentos en la colección sample_mflix.movies. El código coincide y borra documentos que tienen un valor runtime de 5:

Movie.objects.filter(runtime=5).delete()
// Outputs the number of deleted documents and objects
(16, {'sample_mflix.Movie': 16})

Tip

Para obtener más información sobre el método delete(), consulta delete en la documentación de Django.

Para obtener más información sobre cómo realizar operaciones de lectura, consulta la guía Especificar una query.

Para ver más ejemplos de creación, lectura, actualizar y borrar, consulte los siguientes pasos del tutorial Comenzar con Django MongoDB Backend:

Volver

Interacción con los datos

En esta página