2011-02-01 10 views
0

mongodbを使用するレールプロジェクトがあります。以前のモデルから作成したレコード(ドキュメント)があるときの問題です。 (私は古いレコードのためだけにgettin klassエラーを出しています)モデルがmongodbで更新されたときのレコードの修正方法

いくつかのコマンドを使用して、mongodbドキュメントをレール方法で素早く修正できますか?

mongoで特定のモデルを開くためにmongoidで実行できるコマンドがある場合は、手動でドキュメントを突き止めることができます(不要な関連付けを削除する)。

+1

変更が必要なドキュメントを変更するには、mongoクエリを作成する必要があります。 mongodbにはモデルのようなものはありません。使用しているアプリケーションライブラリの上に純粋にいくつかの抽象化が重ねられています。 –

+0

mongoシェルでドキュメントを変更しないで、データ型を正しく処理しません。http://www.mongodb.org/display/DOCS/mongo+-+The+Interactive+Shell#mongo-TheInteractiveShell-SomeNotesonDatatypesintheShell –

答えて

0

スキーマ移行の概念はmongoidに存在する必要があり、私はそうは思わない。フィールド名の変更や削除などの簡単な変更を行った場合は、更新ステートメントで簡単に行うことができますが、複雑なものについてはコードを記述する必要があります。

書く必要があるコードは、マッピングレイヤーがもはや互換性がないため、オブジェクトを変更するためにドライバレベルまで下がる必要があります。

一般に、サーバーにはその概念がなく、強制できないため、オブジェクトにスキーマを変更するときは注意が必要です。最終的には、互換性を維持するために、コードや使用しているフレームワークに依存します。

これは一般的に、マッピングスキーマの観点から、同じスキーマに物事を保持するためにバッチアップグレードを行わずにシステムをマッピングするときに問題になります。

関連する問題