問題タブ [mongomapper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
9 に答える
6076 参照

ruby-on-rails - MongoMapperと移行

私は、バックエンドとしてMongoDBを使用し、ORMツールとしてMongoMapperを使用してRailsアプリケーションを構築しています。バージョン1で、次のモデルを定義するとします。

バージョン2の後半で、モデルに新しい必須キーが必要であることに気付きました。したがって、バージョン2では、SomeModelは次のようになります。

既存のすべてのデータを移行してsome_new_keyを含めるにはどうすればよいですか?既存のすべてのドキュメントに適切なデフォルト値を設定する方法を知っていると仮定します。これをさらに一歩進めて、バージョン3で、some_keyがまったく必要ないことに気付いたとします。これで、モデルは次のようになります

しかし、私のデータベースにあるすべての既存のレコードにはsome_keyの値が設定されており、この時点でスペースを浪費しているだけです。そのスペースを再利用するにはどうすればよいですか?

ActiveRecordを使用すると、some_new_keyの初期値を追加し(version1-> version2移行の場合)、some_keyの値を削除する(version2-> version3移行の場合)移行を作成します。

MongoDB / MongoMapperでこれを行う適切な方法は何ですか?どの移行が実行されたかを追跡する何らかの方法がまだ必要であるように私には思えます。そのようなものは存在しますか?

編集:人々は私の質問の要点を見逃していると思います。データベースでスクリプトを実行して、データベース内のデータを変更または再構築できるようにしたい場合があります。上記の2つの例を示しました。1つは新しい必須キーが追加された例で、もう1つはキーを削除してスペースを再利用できる例です。これらのスクリプトの実行をどのように管理しますか?ActiveRecordの移行により、これらのスクリプトを実行し、実行済みのスクリプトと実行されていないスクリプトを簡単に判別できます。データベースの更新を行うMongoスクリプトを作成することはできますが、私が探しているのは、どのアップグレードスクリプトが既に実行されているかを追跡できる移行のようなフレームワークです。

0 投票する
3 に答える
3833 参照

ruby-on-rails - mongomapperに埋め込まれたドキュメントを削除するにはどうすればよいですか?

私はmongomapperでsinatraアプリケーションを実行します。Movie(Document)とCover(EmbeddedDocument)というモデルがあります。を使用して映画にカバーを埋め込みます

これはうまくいきます。

@ movies.coversを押すと、埋め込まれたドキュメントの配列を取得しました。しかし、埋め込まれたドキュメントを破棄することはできません。私はこのようなことを試みました:

それを破壊する方法は?誰かが埋め込まれたドキュメントを更新する方法を教えてくれたら素晴らしいと思います。

0 投票する
14 に答える
20470 参照

ruby - Mongoid または MongoMapper?

私は MongoMapper を試してみましたが、完全な機能 (ほぼすべての AR 機能を提供) ですが、大規模なデータセットを使用するときのパフォーマンスにはあまり満足できませんでした。Mongoidと比較した人はいますか?パフォーマンスの向上はありますか?

0 投票する
2 に答える
3343 参照

mongodb - 埋め込みドキュメントを使用する場合

作業中のサイトのデータベースをレイアウトする方法を見つけようとしています。ここに私のモデルがあります:

Likeどこかに埋め込む必要があると思いますが、取得したい機能があるため、選ぶのに苦労しています。

findEmbeddedDocument を使用すると問題が発生しますが、 およびその他の便利なメソッドが失われ、両方のモデルに埋め込むことはできません。そのためItem、これを実行する必要があります (しかし実行できません):

未定義のメソッドfind_by_user_idがスローされます。したがって、これを に埋め込む場合Userでも、これを行うことはできませんでした。

だから私はおそらくこのようにするという結論に達しました:

しかし、これは私がまだ古いMySQLの方法で物事をやろうとしているようです. MongoMapper を使用してこれをコーディングする最も可能性の高い方法について誰か教えてもらえますか?

前もって感謝します!

0 投票する
1 に答える
1278 参照

mongomapper - MongoMapperの親の継承

MongoMapperでクラス継承を使用して、より適切で整理された結果を得ようとしていますが、問題があります。

次のコマンドを実行すると、期待したものが返されません。

Item.allそれらはすべて同じ結果であり、それ自体、、、Pictureおよびを含むすべての結果をリストすることを期待しますVideo。ただし、アイテムが実際にである場合は、実行した場合ではなく、実行した場合Pictureに返品されるようにしたいと思います。意味がわかりますか?Picture.allVideo.all

ここで継承がどのように機能するかを誤解していますか?私がこの種の行動を再現するための最良の方法は何ですか?私はこれをどのように機能させたいかについてのガイドラインとしてこれ(ポイント2)に従おうとしています。Link.all彼はすべてのリンクを見つけるために走ることができ、から継承する他のすべてのクラスを含めることはできないと思いItemます。私が間違っている?

0 投票する
3 に答える
3176 参照

ruby-on-rails - MongoMapperhas_manyアソシエーション

mongomapperの関連付けに問題があります。1つのクラス名はUserで、もう1つはModelという名前です。ユーザーには多くのモデルがありますが...

クラスコード(簡略化):

私が間違っていることは何ですか?

0 投票する
3 に答える
1461 参照

ruby - Mongomapper クエリ コレクションの問題

ユーザー has_many ミーティングを定義すると、「user_id」キーと値のペアが自動的に作成され、ユーザー コレクションに関連付けられます。nil または [] を返さない限り、この値を使用して mongo_mapper の検索を実行することはできません。

Meeting.first(:user_id => "1234")

Meeting.all(:user_id => "1234")

Meeting.find(:user_id => "1234")

すべて nil を返します。別の構文はありますか?基本的に、自動生成された連想 ObjectId に対してクエリを実行することはできません。

0 投票する
1 に答える
1317 参照

ruby-on-rails - MongoMapper(または他のMongodbアダプター)には「accepts_nested_attributes_for」のようなメソッドがありますか?

新しいプロジェクトでmongodbを使用することを検討していますが、詳しく調べる前に、mongodbがいくつかの重要な機能をサポートしているかどうかを知りたいと思います。移行の必要がなく、埋め込みオブジェクトを追加できることはわかっていますが、それはすべて、「accepts_nested_attributes_for」メソッドが常に存在するかのように動作することを意味しますか?

MongoDBに賛成または反対する、私が知っておくべき他のキラー機能を知っていますか?

これが私が知っている最近の記事であり、他の人も興味を持っているかもしれません:

http://railstips.org/blog/archives/2009/12/18/why-i-think-mongo-is-to-databases-what-rails-was-to-frameworks/

0 投票する
1 に答える
1290 参照

ruby-on-rails - mongoDB、乗客およびPhusion乗客のパフォーマンスの問題

私はmongodb-userリストでポーズをとっているところに出くわしました。そこでは、MongoMapperでmongoDBを使用するときの乗客とフォークについての議論がありました。

Rails開発者がPassengerでMongoDBを使用する場合は、「environment.rb」を微調整する必要があることを思い出してください。

デフォルトでは、Passengerはfork()を使用してRubyプロセスを生成します。また、fork()はファイル記述子を共有するため、Railsアプリは新しい「プロセス」でMongoDBへの接続を再度開く必要があります。

http://groups.google.com/group/mongodb-user/browse_thread/thread/f31e2d23de38136a

mongoDBとpassengerにまだ問題があるかどうか、またはmongoDB-rails-applicationをpassengerで提供するための最良の方法は何ですか?

0 投票する
1 に答える
611 参照

ruby-on-rails - MongoMapper による継承: 親クラスの検索

mongomapper/rails で継承を使用する場合、クラス名をフィールドに保存するのは理にかなっていますか?

Item の検索が実行されると、MongoMapper は Item オブジェクトを返します。それらがどの種類のオブジェクトであるかは明らかではありません。アイテムを互いに区別するためにアイコンなどを表示したい場合は、クラス名をデータベースに保存することで実行できます。これは理にかなっていますか、それとももっと良い方法がありますか?