Ruby on Rails プロジェクトで MongoModel gem を使用していますが、問題なく動作します。モデルで定義された構造に厳密に従っていれば問題なく動作するため、基本的に MongoDB をスキーマ付きのデータベースとして使用します。しかし、ある観点から見ると、MongoDB の利点の 1 つは、それがスキーマレス データベースであることです。そして、mongo シェルでできるように、ドキュメントにランダムなフィールドを追加して、それを利用したいと思います。
どうやってするか?方法はありますか?
アップデート:
特にzero.zero.sevenとj03wからのコメントへの返信で、なぜこれを求めているのかをより明確にしようとしています。構造を考えるのが面倒くさいからではなく、Mongo の優れた機能である柔軟性を活かしたいからです。
私は以前にMS SQLと.Netで同様のことをしました。データベースの一部の構造は、テーブルではなくフォームを定義する XML ファイルで定義されていました。フォームの値は、問題の現在のアイテムのインスタンスの ID とフォームのフィールドの ID のように、垂直構造に格納され、すべての整数は「整数」テーブルに、文字列は「文字列」に格納されました。 " テーブル。これにより柔軟性が得られました: 作業を完了するために新しい情報が必要であることがわかった場合、XML を編集して新しいフィールドを追加するだけで済みます。それらはフォームに表示され、垂直 DB 構造に格納されました。しかしもちろん、それには欠点もありました。より多くのレコード、あまり明確でないデータベース、情報構造を反映していないテーブル構造などです。パフォーマンス、たぶん。
これで Mongo コンソールで遊んでいる限り、簡単です。しかし、どうすれば Rails でそれを行うことができるでしょうか? モデルではなく、別の場所で構造を定義できるソリューションを探しています。一部のフィールドはどこにでもあり、もちろんそのうちの 1 つが「サブジェクト」になる可能性があります。そのため、被験者が「旅行」と言うと、アプリケーションは「目的地」と「出発日」を尋ね、「カレンダー入力」と言うと「予定日」と「参加者」を尋ねます。したがって、構造は存在しますが、インスタンスごと、ドキュメントごとに変化します。