모듈: Mongoid::Positional

포함 항목:
연관 관계::Embedded::Batchable, Contextual::Memory, 지속 가능
다음에 정의됨:
lib/mongoid/positional.rb

개요

이 모듈은 업데이트 선택기를 취하고 적절한 경우 $ 위치 연산자 의 인덱스를 전환하는 역할을 합니다.

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#위치 적으로(선택기, 연산, 처리됨 = {}) ⇒ 해시

참고:

위치 연산자 를 사용해야 하는 시점을 정확하게 알 수 있는 유일한 경우는 무언가를 지속할 때뿐입니다. 따라서 선택기를 통해 전송 중인 위치 연산자 를 실제로 사용할 수 있는지 여부를 알 수 있습니다. 예를 예시, 선택기가 { "_id " => 1 }인 경우, 일치하는 항목이 없으므로 내장된 문서를 업데이트하는 데 위치 연산자 를 사용할 수 없습니다. 선택기가 진행되고 ID 값이 nil이 아닌 경우.

제공된 선택기와 원자 조작을 수행하고 필요할 때 내장된 문서의 인덱스를 위치 연산자 로 바꿉니다.

예시:

작업을 처리합니다.

positionally(
  { "_id" => 1, "addresses._id" => 2 },
  { "$set" => { "addresses.0.street" => "hobrecht" }}
)

매개변수:

  • 선택기 (해시)

    선택기.

  • 연산 (해시)

    업데이트 작업.

  • 처리됨 (해시) (기본값: {})

    처리된 업데이트 작업입니다.

반환합니다:

  • (해시)

    새로운 작업.



34
35
36
37
38
39
40
41
# 파일 'lib/mongoid/positional.rb', 줄 34

def 위치적으로(선택기, 연산, 처리됨 = {})
  만약 선택기.size == 1 || 선택기.values.어떤? { |val| val.nil? }
    반환 연산
  end
   = 선택기..map{ |m| m.sub('._id','') } - ['_id']
   = .sort_by { |s| s.분량*-1 }
  process_operations(, 연산, 처리됨)
end