Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Backend do Django MongoDB
/

Realizar operações CRUD

Neste guia, você pode aprender como usar o Django MongoDB Backend para executar operações de criação, leitura, atualização e exclusão (CRUD) em sua coleção do MongoDB .

Você também pode usar o site de administração do Django para editar seus modelos e suas coleções correspondentes em uma interface da Web. Para obter mais informações, consulte a entrada do Django Admin Site na documentação do Django.

Você pode usar métodos fornecidos pela API do Django QuerySet para executar operações CRUD. Para executar essas operações, você pode chamar os métodos QuerySet no gerenciador do seu modelo. A classe Manager lida com operações de banco de dados e permite que você interaja com os dados do MongoDB fazendo referência a modelos do Django. Por padrão, o Django adiciona um Manager denominado objects a cada classe de modelo.

Dica

Para saber mais sobre a API do Django,QuerySet consulte na documentação do QuerySet Django.

Este guia mostra como usar os seguintes métodos do QuerySet:

  • create(): Insere documentos na collection

  • filter() e get(): recupera um ou vários documentos da collection

  • update(): Modifica documentos da collection

  • delete(): exclui documentos da coleção

Os exemplos neste guia usam o Movie modelo, que representa a sample_mflix.movies collection dos conjuntos de dados de amostra do Atlas . A classe de modelo Movie tem a seguinte definição:

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

O modelo Movie inclui uma classe Meta interna, que especifica os metadados do modelo, e um método __str__(), que define a representação de string do modelo. Para saber mais sobre essas funcionalidades de modelo, consulte Definir um modelo no guia Criar modelos.

Você pode usar o shell interativo do Python para executar os exemplos de código. Para entrar na shell, execute o seguinte comando no diretório raiz do seu projeto:

python manage.py shell

Depois de inserir o shell do Python, certifique-se de importar os seguintes modelos e módulos:

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

Para saber como criar um aplicação Django que use o modelo Movie e o shell interativo Python para interagir com documentos do MongoDB, acesse o tutorial de Introdução.

Para inserir um documento em uma coleção, chame o método create() no gerenciador do seu modelo. Passe os nomes de campo e os valores de campo do novo documento como argumentos para o método create().

O exemplo a seguir chama o método create() para inserir um documento na coleção sample_mflix.movies. O novo documento tem um valor title de "Poor Things" e um valor runtime de 141:

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

O método create() permite criar um novo objeto Movie e salvar o objeto no MongoDB em uma chamada de método. Como alternativa, você pode criar um objeto Movie e chamar save(), conforme mostrado no código a seguir:

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

Dica

Para saber mais sobre o create() método, consulte na documentação do create Django.

Para recuperar documentos da sua coleção, chame o método filter() no gerenciador do seu modelo. Passe um filtro de query ou critérios que especifiquem quais documentos recuperar, como argumento para o método filter().

Alternativamente, você pode chamar o método get() para recuperar um único documento que corresponda à sua query.

O exemplo seguinte chama o método filter() para recuperar documentos da coleção sample_mflix.movies. A query retorna Movie objetos que representam filmes lançados em 1 de janeiro 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>]>

Dica

Para saber mais sobre o filter() método, consulte na documentação do filter Django.

Para recuperar somente um documento que corresponda aos seus critérios de query, chame o método get() e passe um filtro de query como argumento. O exemplo a seguir recupera um documento no qual o valor title é "Boyhood":

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

Importante

Se a sua query não corresponder a nenhum documento ou a vários documentos, o método get() gerará um erro. Para recuperar um documento de uma query que possa corresponder a vários, encadeie o método first() a filter(), conforme mostrado no código a seguir:

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

Dica

Para saber mais sobre o get() método, consulte na documentação do get Django.

Para modificar documentos em uma coleção, chame os métodos filter() e update() no gerenciador do seu modelo. Passe um filtro de query ou critérios que especifiquem quais documentos atualizar, como argumento para o método filter(). Em seguida, passe os campos e valores que deseja atualizar como argumentos para o método update().

O exemplo seguinte chama o método update() para modificar documentos na coleção sample_mflix.movies. O código corresponde a um documento que tem um valor title de "High Fidelity" e adiciona um 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

Dica

Para saber mais sobre o update() método, consulte na documentação do update Django.

Para excluir documentos em uma coleção, chame os métodos filter() e delete() no gerenciador do seu modelo, Passe um filtro de query ou critérios que especificam quais documentos excluir, como argumento para o método filter().

O exemplo seguinte chama o método delete() para excluir documentos na coleção sample_mflix.movies. O código corresponde e exclui documentos que têm um valor runtime de 5:

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

Dica

Para saber mais sobre o delete() método, consulte na documentação do delete Django.

Para saber mais sobre como realizar operações de leitura, consulte o guia Especificar uma query.

Para exibir mais exemplos de criação, leitura, atualização e exclusão, consulte as seguintes etapas do tutorial de Introdução:

Voltar

Interaja com dados

Nesta página