カクカクしかじか

技術的なアレコレ

MongoDB

Mongoidで本番DBのslaveにアクセスするためのコード

mongoidに纏わる誰の役にも立たない内容 本番でコンソールに入ってスクリプトを打つときについ忘れがちですが、 データ更新を行わないスクリプトを実行する場合はslaveを見るように指定するのが肝要です。 slaveを見るために必要なコード ※ 以下の例では mon…

mongoidのModel.where(field: { '$exists' => true }はフィールドが存在したら無条件で値を取ってきてしまうのでnilチェックされないという落とし穴

前提 BlogモデルとUserモデルがある BlogはUserにbelogs_toの関係 Blogのデータに対してUserが存在するデータだけを検索したい場合 落とし穴 mongoidの Blog.where(user: { '$exists' => true } は フィールドが存在したら無条件で値を取ってきてしまうので…

mongoidのtimeless.save関連のバグを見つけた備忘録

概要 mongoidには特定のインスタンスのtimestampを更新したくない時に、timestampだけ更新しないようにする仕組みがあります。 私は実務でActive Recordを使ったことがないので定かではないですが、Active Recordにも必ずあるはずです。 そのオプションを付…

MongoDBのODマッパーmongoidにプルリクエストを送ってみた

今回やったこと RailsからMongoDBを使うためのOD(Object Document)マッパーであるmongoidにプルリクエストを送りました。 github.com 概要 mongoidを使った時にrails g modelコマンドでデフォルトで生成されるファイルにはtimestampがincludeされないので、…

Dockerでコンテナ内にbundle installされない問題の解決法

前提 こちらの記事はDockerに対して不慣れな人間が書いているので、そらそうやろ!という内容が含まれます。 それでも個人用メモとして放流します。 技術要素 Rails 5.2.2.1 Ruby 2.5.1 mongodb 4.0.6 Dockerを扱うディレクトリ構成 アプリディレクトリ/ Gem…

MongoDBのindexをターミナルから確認する方法

個人的メモ mongoシェルでDBに貼られたindexを確認する方法 # mongoシェルをターミナルで起動 > mongo MongoDB shell version: 3.2.11 connecting to: test # db一覧を出す > show dbs # ローカル環境のdb一覧が出てくる local 0.000GB mongoid_lab_developm…