Docs Menu
Docs Home
/ / /
장고 MongoDB 백엔드
/

CRUD 작업 수행하기

이 가이드 에서는 장고 MongoDB 백엔드를 사용하여 MongoDB 컬렉션 에서 생성, 읽기, 업데이트 및 삭제 (CRUD ) 작업을 실행 방법을 학습 수 있습니다.

장고 관리 사이트 사용하여 웹 인터페이스에서 모델과 해당 컬렉션을 편집할 수도 있습니다. 자세한 내용은 Django 문서에서 Django관리자 사이트 항목을 참조하세요.

장고 QuerySet API 에서 제공하는 메서드를 사용하여 CRUD 작업을 실행 수 있습니다. 이러한 작업을 실행 하려면 모델 관리자에서 QuerySet 메서드를 호출하면 됩니다. Manager 클래스는 데이터베이스 작업을 처리하고 Django 모델을 참조하여 MongoDB 데이터와 상호 작용 있도록 합니다. 기본값 으로 Django는 모든 모델 클래스에 objects 라는 이름의 Manager 를 추가합니다.

장고의 QuerySet API 에 QuerySet 대해 자세히 학습 장고 문서에서 를 참조하세요.

이 가이드 다음 QuerySet 메서드를 사용하는 방법을 보여줍니다.

  • create(): 컬렉션 에 문서를 삽입합니다.

  • 필터하다() 및 get(): 하나 이상의 컬렉션 문서를 조회합니다.

  • 업데이트(): 컬렉션 문서를 수정합니다.

  • 삭제(): 컬렉션 문서를 삭제합니다.

Movie 가이드 의 sample_mflix.movies 예제에서는 Atlas 샘플 데이터 세트의 컬렉션 나타내는 모델을 사용합니다. Movie 모델 클래스에는 다음과 같은 정의가 있습니다.

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

Movie 모델에는 모델 메타데이터 지정하는 내부 Meta 클래스와 모델의 문자열 표현을 정의하는 __str__() 메서드가 포함되어 있습니다. 이러한 모델 기능에 대해 학습 모델 생성 가이드 의모델 정의를 참조하세요.

Python 대화 셸 사용하여 코드 예제를 실행 수 있습니다. 셸 에 들어가려면 프로젝트의 루트 디렉토리 에서 다음 명령을 실행 .

python manage.py shell

Python 셸 입력한 후 다음 모델 및 모듈을 가져와야 합니다.

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

모델과 Python 인터랙티브 셸 사용하여 MongoDB 문서와 상호 Movie 작용 장고 애플리케이션 만드는 방법을 학습 시작하기 튜토리얼을 참조하세요.

컬렉션 에 문서 삽입하려면 모델 관리자에서 create() 메서드를 호출합니다. 새 문서의 필드 이름과 필드 값을 create() 메서드에 인수로 전달합니다.

다음 예시 create() 메서드를 호출하여 sample_mflix.movies 컬렉션 에 문서 삽입합니다. 새 문서 의 title 값은 "Poor Things" 이고 runtime 값은 141입니다.

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

create() 메서드를 사용하면 한 번의 메서드 호출로 새 Movie 객체 만들고 객체 MongoDB 에 저장할 수 있습니다. 또는 다음 코드에 표시된 대로 Movie 객체 생성하고 save()를 호출할 수 있습니다.

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

create() 메서드에 대해 자세히 학습 장고 문서에서 를 참조하세요.create

컬렉션 에서 문서를 조회 하려면 모델 관리자에서 filter() 메서드를 호출합니다. 조회 할 문서를 지정하는 쿼리 필터하다 또는 기준을 filter() 메서드의 인수로 전달합니다.

또는 get() 메서드를 호출하여 쿼리 와 일치하는 단일 문서 조회 할 수 있습니다.

다음 예시 filter() 메서드를 호출하여 sample_mflix.movies 컬렉션 에서 문서를 조회 . 쿼리 1, 2000에 1월에 개봉된 영화를 나타내는 Movie 객체를 반환합니다.

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>]>

filter() 메서드에 대해 자세히 학습 장고 문서에서 를 참조하세요.filter

쿼리 기준과 일치하는 문서 하나만 조회 하려면 get() 메서드를 호출하고 쿼리 필터하다 인수로 전달합니다. 다음 예시 title 값이 "Boyhood"인 문서 조회합니다.

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

중요

쿼리 일치하는 문서가 없거나 여러 문서와 일치하는 경우 get() 메서드는 오류를 생성합니다. 여러 개와 일치할 수 있는 쿼리 에서 하나의 문서 조회 하려면 다음 코드와 같이 first() 메서드를 filter()에 연결합니다.

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

get() 메서드에 대해 자세히 학습 장고 문서에서 를 참조하세요.get

컬렉션 의 문서를 수정하려면 모델 관리자에서 filter()update() 메서드를 호출합니다. 업데이트 할 문서를 지정하는 쿼리 필터하다 또는 기준을 filter() 메서드의 인수로 전달합니다. 그런 다음 업데이트 하려는 필드와 값을 update() 메서드에 인수로 전달합니다.

다음 예시 update() 메서드를 호출하여 sample_mflix.movies 컬렉션 의 문서를 수정합니다. 이 코드는 title 값이 "High Fidelity" 이고 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

update() 메서드에 대해 자세히 학습 장고 문서에서 를 참조하세요.update

컬렉션 에서 문서를 삭제 하려면 모델 관리자에서 filter()delete() 메서드를 호출하거나, 쿼리 필터하다 또는 삭제 문서를 지정하는 기준을 filter() 메서드에 대한 인수로 전달합니다.

다음 예시 delete() 메서드를 호출하여 sample_mflix.movies 컬렉션 의 문서를 삭제 . 이 코드는 runtime 값이 5인 문서를 일치시키고 삭제합니다.

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

delete() 메서드에 대해 자세히 학습 장고 문서에서 를 참조하세요.delete

읽기 작업 수행에 대해 자세히 학습 쿼리 지정 가이드 를 참조하세요.

만들기, 읽기, 업데이트 및 삭제 예제를 더 보려면 시작하기 튜토리얼의 다음 단계를 참조하세요.

돌아가기

데이터와 상호 작용

이 페이지의 내용