수색…


설치

첫째, 추가 Mongoid 당신에 Gemfile :

gem "mongoid", "~> 4.0.0"

bundle install 를 실행하십시오. 또는 다음을 실행하십시오.

$ gem install mongoid

설치가 끝나면 생성기를 실행하여 구성 파일을 만듭니다.

$ rails g mongoid:config

(myapp)/config/mongoid.yml 파일을 생성합니다.

모델 만들기

다음을 실행하여 모델을 만듭니다 ( User 호출 가능).

$ rails g model User

app/models/user.rb 파일을 생성합니다.

class User
  include Mongoid::Document

end

이것은 ( id 필드 일 뿐이지 만) 모델을 갖기 위해 필요한 것입니다. ActiveRecord 와는 달리, 마이그레이션 파일이 없습니다. 모델에 대한 모든 데이터베이스 정보는 모델 파일에 포함됩니다.

타임 스탬프는 생성 할 때 모델에 자동으로 포함되지 않습니다. created_atupdated_at 을 모델에 추가하려면 다음을 추가하십시오.

include Mongoid::Timestamps

include Mongoid::Document 처럼 아래의 모델에 추가하십시오 :

class User
  include Mongoid::Document
  include Mongoid::Timestamps

end

전지

Mongoid 문서 에 따라 16 개의 유효한 필드 유형이 있습니다.

  • 정렬
  • BigDecimal
  • 부울
  • 날짜
  • 날짜 시간
  • 흙손
  • 해시시
  • 정수
  • BSON :: ObjectId
  • BSON :: 이진
  • 범위
  • 정규 표현식
  • 상징
  • 시각
  • TimeWithZone

필드를 추가하려면 ( name String ) 모델 파일에 다음을 추가하십시오.

field :name, type: String

기본값을 설정하려면 default 옵션을 전달하십시오.

field :name, type: String, default: ""

클래식 협회

Mongoid는 고전적인 ActiveRecord 연관을 허용합니다 :

  • 일대일 : has_one / belongs_to
  • 일대 다 : has_many / belongs_to
  • 다 대다 : has_and_belongs_to_many

연결을 추가하려면 (User has_many posts라고 말하면됩니다) User 모델 파일에 다음을 추가 할 수 있습니다.

has_many :posts

그리고 이것을 당신의 Post 모델 파일에 저장하세요 :

belongs_to :user

이것은 추가합니다 user_id 당신에 필드를 Post , 모델 추가 user 당신에게 방법을 Post 클래스 및 추가 posts 당신에게 방법을 User 클래스입니다.

임베디드 협회

몽고 이드는 임베디드 협회를 허용합니다.

  • 일대일 : embeds_one / embedded_in
  • 일대 다 : embeds_many / embedded_in

연결을 추가하려면 (사용자 embeds_many 주소라고 말하면 됨) User 파일에 다음을 추가하십시오.

embeds_many :addresses

Address 모델 파일에 :

embedded_in :user

이 포함됩니다 Address 사용자의 User 추가 모델 addresses 당신에게 방법을 User 클래스입니다.

데이터베이스 호출

Mongoid는 가능한 경우 ActiveRecord 와 유사한 구문을 사용하려고 시도합니다. 그것은 이러한 호출 (그리고 더 많은 것들)을 지원합니다.

User.first #Gets first user from the database

User.count #Gets the count of all users from the database

User.find(params[:id]) #Returns the user with the id found in params[:id]

User.where(name: "Bob") #Returns a Mongoid::Criteria object that can be chained
                        #with other queries (like another 'where' or an 'any_in')
                        #Does NOT return any objects from database

User.where(name: "Bob").entries #Returns all objects with name "Bob" from database

User.where(:name.in => ['Bob', 'Alice']).entries #Returns all objects with name "Bob" or "Alice" from database

User.any_in(name: ["Bob", "Joe"]).first #Returns the first object with name "Bob" or "Joe"
User.where(:name => 'Bob').exists? # will return true if there is one or more users with name bob


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow