모듈: Mongoid::Criteria::Modifiable

포함 항목:
Mongoid::Criteria
다음에 정의됨:
lib/mongoid/criteria/modifiable.rb

개요

Mongoid::Criteria용 Mixin 모듈은 기준의 조건에 따라 초기화된 속성으로 새 문서를 빌드 하거나 생성하는 기능 을 추가합니다.

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

인스턴스 속성 세부 정보

#create_attrs객체 (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.



11
12
13
# 파일 'lib/mongoid/criteria/modifiable.rb', 줄 11

def create_attrs
  @create_attrs
end

#create_attrs 문서 생성 시 문서에 추가할 추가 속성입니다.(생성 시 문서에 추가하기 위한 추가 속성) ⇒ 객체 (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.



11
# 파일 'lib/mongoid/criteria/modifiable.rb', 줄 11

attr_reader :create_attrs

인스턴스 메서드 세부 정보

#build(attrs = {}, &block) ⇒ 문서 라고도 함: new

셀렉터가 지정된 문서 를 작성하고 반환합니다. $in 및 $or 연산과 같은 복잡한 기준은 무시됩니다.

예시:

문서 를 빌드 합니다.

Person.where(:title => "Sir").build

선택기가 무시되도록 빌드합니다.

Person.where(:age.gt => 5).build

반환합니다:

  • (문서)

    비영구 문서 입니다.



23
24
25
# 파일 'lib/mongoid/criteria/modifiable.rb', 줄 23

def 빌드(attrs = {}, &차단)
  create_document(:new, attrs, &차단)
end

#create(attrs = {}, &block) ⇒ 문서

셀렉터가 지정된 데이터베이스 에 문서 를 생성하고 반환합니다. $in 및 $or 연산과 같은 복잡한 기준은 무시됩니다.

예시:

문서 를 만듭니다.

Person.where(:title => "Sir").create

선택기를 무시하고 생성합니다.

Person.where(:age.gt => 5).create

반환합니다:

  • (문서)

    새로 생성된 문서 입니다.



38
39
40
# 파일 'lib/mongoid/criteria/modifiable.rb', 줄 38

def create(attrs = {}, &차단)
  create_document(:create, attrs, &차단)
end

#create!(attrs = {}, &block) ⇒ 문서

셀렉터가 지정된 데이터베이스 에 문서 를 생성하고 반환합니다. $in 및 $or 연산과 같은 복잡한 기준은 무시됩니다. 유효성 검사 에 실패하면 오류가 발생합니다.

예시:

문서 를 만듭니다.

Person.where(:title => "Sir").create

선택기를 무시하고 생성합니다.

Person.where(:age.gt => 5).create

반환합니다:

  • (문서)

    새로 생성된 문서 입니다.

다음을 발생시킵니다.



55
56
57
# 파일 'lib/mongoid/criteria/modifiable.rb', 줄 55

def 생성!(attrs = {}, &차단)
  create_document(:create!, attrs, &차단)
end

#create_with(attrs = {}) ⇒ Mongoid::Criteria

새 문서를 만들 때 사용할 속성을 정의합니다.

이 이후에 메서드 체인에서 find_or_create_by 가 호출되면 쿼리 의 속성이 이 메서드의 속성을 재정의합니다.

예시:

새 문서 를 만들 때 사용할 속성을 정의합니다.

Person.create_with(job: 'Engineer').find_or_create_by(employer: 'MongoDB')

반환합니다:



68
69
70
71
72
73
# 파일 'lib/mongoid/criteria/modifiable.rb', 줄 68

def create_with(attrs = {})
   do
    @create_attrs ||= {}
    @create_attrs.update(attrs)
  end
end

#find_or_create_by(attrs = {}, &block) ⇒ 문서

조건이 주어진 첫 번째 Document 를 찾거나 제공된 조건으로 새 문서 를 만듭니다.

예시:

문서를 찾거나 만듭니다.

Person.find_or_create_by(:attribute => "value")

매개변수:

  • attrs (해시) (기본값: {})

    확인할 속성입니다.

반환합니다:

  • (문서)

    일치하는 문서 또는 새로 생성된 문서 입니다.



84
85
86
# 파일 'lib/mongoid/criteria/modifiable.rb', 줄 84

def find_or_create_by(attrs = {}, &차단)
  find_or(:create, attrs, &차단)
end

#find_or_create_by!(attrs = {}, &block) ⇒ 문서

조건이 주어진 첫 번째 Document 를 찾거나 제공된 조건으로 새 문서 를 만듭니다. 유효성 검사 에 실패하면 예외가 발생합니다.

예시:

문서를 찾거나 만듭니다.

Person.find_or_create_by!(:attribute => "value")

매개변수:

  • attrs (해시) (기본값: {})

    확인할 속성입니다.

반환합니다:

  • (문서)

    일치하는 문서 또는 새로 생성된 문서 입니다.

다음을 발생시킵니다.



100
101
102
# 파일 'lib/mongoid/criteria/modifiable.rb', 줄 100

def find_or_create_by!(attrs = {}, &차단)
  find_or(:create!, attrs, &차단)
end

#find_or_initialize_by(attrs = {}, &block) ⇒ 문서

조건이 주어진 첫 번째 Document 를 찾거나 제공된 조건으로 새 문서를 초기화합니다.

예시:

문서를 찾거나 초기화합니다.

Person.find_or_initialize_by(:attribute => "value")

매개변수:

  • attrs (해시) (기본값: {})

    확인할 속성입니다.

반환합니다:

  • (문서)

    일치하거나 새로 초기화 문서 입니다.



113
114
115
# 파일 'lib/mongoid/criteria/modifiable.rb', 줄 113

def find_or_initialize_by(attrs = {}, &차단)
  find_or(:new, attrs, &차단)
end

#first_or_create(attrs = nil, &block) ⇒ 문서

첫 번째 Document 을(를) 찾거나 제공된 조건과 속성을 사용하여 새 문서 를 만듭니다.

예시:

먼저 또는 문서 를 만듭니다.

Person.where(name: "Jon").first_or_create(attribute: "value")

매개변수:

  • attrs (해시) (기본값: nil)

    추가할 추가 속성입니다.

반환합니다:

  • (문서)

    일치하는 문서 또는 새로 생성된 문서 입니다.



126
127
128
# 파일 'lib/mongoid/criteria/modifiable.rb', 줄 126

def first_or_create(attrs = nil, &차단)
  first_or(:create, attrs, &차단)
end

#first_or_create!(attrs = nil, &block) ⇒ 문서

첫 번째 Document 을(를) 찾거나 제공된 조건과 속성을 사용하여 새 문서를 만들고 유효성 검사에 실패하면 오류를 발생시킵니다.

예시:

먼저 또는 문서 를 만듭니다.

Person.where(name: "Jon").first_or_create!(attribute: "value")

매개변수:

  • attrs (해시) (기본값: nil)

    추가할 추가 속성입니다.

반환합니다:

  • (문서)

    일치하는 문서 또는 새로 생성된 문서 입니다.



140
141
142
# 파일 'lib/mongoid/criteria/modifiable.rb', 줄 140

def first_or_create!(attrs = nil, &차단)
  first_or(:create!, attrs, &차단)
end

#first_or_initialize(attrs = nil, &block) ⇒ 문서

첫 번째 Document 을(를) 찾거나 제공된 조건과 속성을 사용하여 새 문서 를 초기화합니다.

예시:

문서를 먼저 또는 초기화합니다.

Person.where(name: "Jon").first_or_initialize(attribute: "value")

매개변수:

  • attrs (해시) (기본값: nil)

    추가할 추가 속성입니다.

반환합니다:

  • (문서)

    일치하거나 새로 초기화 문서 입니다.



153
154
155
# 파일 'lib/mongoid/criteria/modifiable.rb', 줄 153

def first_or_initialize(attrs = nil, &차단)
  first_or(:new, attrs, &차단)
end