RailsでMongoDBを使う
Mongoid
RailsでMongoDBを使うには、Mongoidを利用します。
Mongoidは、RubyのMongoDB用ORMです。
RailsでRDBを利用する場合、Active Recordが広く使われていますが、それのMongoDB版だということです。
Mongoidは、Active Recordと似たようなインターフェースがあり、Active Recordを使ったことがある人は使いやすいと思います。
実際に試してみる
Mongoidのインストール
では、実際にMongoidを使っていきます。
まず、Railsプロジェクトの作成時に、--skip-active-record
オプションをつけることで、Active Recordをスキップします。
それと同時に、通常のRDB関連のGemもインストールしません。
$ rails new . --skip-active-record --force
MongoidはGemでインストールできるので、Gemfileに追記して、bundle install
します。
gem 'mongoid'
bundle install
すると、Mongoidのインストールは完了です。
RailsでMongoidを使う
rails g scaffold
で一気にいろいろ生成します。
$ docker-compose run rails rails g scaffold user name age:integer --timestamp
これで、Userモデルやそのコントローラが作成されました。
ルーティングも自動で設定されています。
http://localhost:3000/usersにアクセスすると、↑のようなページが表示されました。
(ユーザー追加してます)
Mongoidのモデルの使用例
先に説明した方法で生成されたモデルの使用例をいくつかみてみます。
(それぞれ抜粋です)
# 新規作成 @user = User.new(user_params) # 更新 @user.update(user_params) # 消去 @user.destroy # 検索 @user = User.find(params[:id])
見てわかる通り、ActiveRecordとほぼ同様の方法で操作できます。
ただし、MongoDBでは結合ができないため、Mongoidのモデルでも結合ができません。
その他にも、いくつかActive Recordと異なる点があります。
終わり