개요
이 가이드 에서는 Mongoid에서 쿼리의 데이터를 유지하는 방법을 학습 수 있습니다. Mongoid는 제한된 용량 으로 기준을 벗어난 지속성 작업을 지원하므로 다중 문서 삽입, 업데이트 및 삭제 작업을 명시적으로 수행할 수 있습니다.
필터하다 기준 만들기에 대해 자세히 학습 문서 쿼리 지정 가이드 참조하세요.
CRUD 작업 수행에 대해 자세히 학습 데이터 작업 수행 가이드 참조하세요.
지속성 메서드
이 섹션에서는 MongoDB 컬렉션에서 데이터를 생성, 업데이트 및 삭제 위해 쿼리에 연결할 수 있는 메서드에 대해 설명합니다.
문서 만들기
다음 방법을 사용하여 쿼리 기준에서 새 문서를 만들 수 있습니다.
create
: 모델 인스턴스 MongoDB 에 저장합니다.예시:
Band.where(name: 'Daft Punk').create
create!
: 모델 인스턴스 MongoDB 에 저장하거나 유효성 검사 오류가 발생하면 예외를 발생시킵니다.예시:
Band.where(name: 'Daft Punk').create!
build
: 저장되지 않은 모델 인스턴스 생성합니다.예시:
Band.where(name: 'Daft Punk').build
new
: 저장되지 않은 모델 인스턴스 생성합니다.예시:
Band.where(name: 'Daft Punk').new
문서 업데이트
다음 방법을 사용하여 쿼리 기준에 따라 문서를 업데이트 수 있습니다.
update
: 일치하는 첫 번째 문서 의 속성을 업데이트합니다.예시:
Band.where(name: 'Sundown').update(label: 'ABC Records')
update_all
: 일치하는 모든 문서의 속성을 업데이트합니다.예시:
Band.where(country: 'Canada').update_all(label: 'ABC Records')
add_to_set
: 일치하는 모든 문서의 지정된 배열 에 값을 추가합니다.예시:
Band.where(name: 'Sun Down').add_to_set(label: 'ABC Records')
bit
: 필드 의 비트 단위 업데이트 수행합니다.예시:
Band.where(name: 'Sun Down').bit(likes: { and: 14, or: 4 })
inc
: 필드 값을 증가시킵니다.예시:
Band.where(name: 'Sun Down').inc(likes: 14)
pop
: 배열 필드 의 첫 번째 또는 마지막 요소를 제거합니다.예시:
Band.where(name: 'Sun Down').pop(members: -1)
pull
: 배열 필드 에서 지정된 조건과 일치하는 값의 모든 인스턴스를 제거합니다.예시:
Band.where(name: 'Sun Down').pull(members: 'Jonah Larsen')
pull_all
: 배열 필드 에서 지정된 값의 모든 인스턴스를 제거합니다.예시:
Band.where(name: 'Sun Down').pull_all(:members, [ 'Jonah Larsen', 'Dan Jones' ])
push
: 지정된 값을 배열 필드 에 추가합니다.예시:
Band.where(name: 'Sun Down').push(members: 'Jonah Larsen')
push_all
: 배열 필드 에$each
연산자 사용하여 지정된 값을 추가합니다.예시:
Band.where(name: 'Sun Down').push_all(members: [ 'Jonah Larsen', 'Dan Jones' ])
rename
: 일치하는 모든 문서에서 필드 이름 변경예시:
Band.where(name: 'Sun Down').rename(name: :title)
set
: 일치하는 모든 문서에서 지정된 필드 에 새 값을 설정합니다.예시:
Band.where(name: 'Sun Down').set(likes: 10000)
unset
: 일치하는 모든 문서에서 특정 필드 삭제합니다.예시:
Band.where(name: 'Sun Down').unset(:likes)
문서 삭제
다음 방법을 사용하여 쿼리 기준에 따라 문서를 삭제 수 있습니다.
delete
: 일치하는 모든 문서를 삭제합니다.예시:
Band.where(label: 'ABC Records').delete
destroy
: 콜백을 실행 동안 일치하는 모든 문서를 삭제합니다. 이 메서드는 모든 문서를 메모리로 로드합니다.예시:
Band.where(label: 'ABC Records').destroy
추가 정보
지속성 대상을 사용자 지정하는 방법을 학습 지속성 구성 가이드 참조하세요.