問題タブ [mongodb-ruby]
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.
ruby - ObjectId を使用すると、Ruby と MongoDB でドキュメントが見つかりません
Ruby 1.9.2 パッチ レベル 136 で記述されたコードがいくつかありfind
、生の Ruby mongo ドライバーで _id を介して実行すると、csv ファイルの値を使用しようとすると nil が返されるという問題があります。コードは次のとおりです。
CSV ファイルは次のようになります。
最初の列は、私が既に持っている Mongo の objectId です。最初の列の値を mongo コマンド ラインからローカル検索を実行すると、必要なデータが得られます。ただし、上記のコードは@game.inspect
呼び出し時に nil を返します。
次のバリエーションを試しましたが、すべてゼロになります。
BSON クラスを使用して ObjectId を構築しようとしました。
また
どちらも次のエラーを出力します。
クレイジーなことは、手動で BSON ObjectId を手動で作成すると、それが機能することです (以下に示すように)。
@game.inspect を実行すると、期待どおりにデータが返されます。ただし、これをrow[0]を使用するように変更すると、nilになります。
なんで?私は何を間違っていますか?
システム詳細
RVM バージョン:rvm 1.6.9
ルビーのバージョン:ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.6.0]
モンゴのバージョン:
繰り返しますが、なぜですか?ここで何が間違っていますか?ありがとう!
ruby-on-rails - Ruby on Rails と MongoDB
デフォルトのスタートページが表示される新しい Ruby on Rails インストールがあります。
MongoDB を Rails にインストールするために、このガイドに従いました。
実行時に次のエラーが表示されますrake test
。
bson_ext gem をインストールしました。これは、bson_ext がロード パスにないか、gem が同じバージョンではないことを意味します。
ロードパスはどこですか?どうすれば変更できますか?gem が同じバージョンかどうかを確認するにはどうすればよいですか?
mongodb - Mongo で最大ドキュメント サイズを下げるか、更新時にドキュメント サイズを制限することは可能ですか?
システムが実際にサポートするよりも小さい最大ドキュメント サイズを適用したいと考えています。挿入でそうするのは合理的です-挿入前にチェックするだけです。更新時にそうするのはあまり明確ではありません。更新によってサイズが大きくなっていないかどうかを確認するために、ドキュメント全体を読み返す必要はありません。私は何をすべきか?更新時に例外がスローされるように、ドキュメントの最大サイズを下げることはできますか?
mongodb - キャッシュなしでmongodbクエリのパフォーマンスを確認するにはどうすればよいですか
完了するのに時間がかかりすぎるクエリがあります。私はいくつかのパフォーマンス テストを行うのが好きですが、一度チェックした後 (現在は約 30 秒かかります)、クエリの実行速度が大幅に向上します (< 1 秒)。私はそれがmongodbキャッシングである必要があると思います。mongodb のキャッシュを無効にする方法や、パフォーマンスを確認できる別の方法はありますか?
私はmongohqでホストされているmongodbを使用しています。Ruby on Rails 3 でプログラミングします。説明は次のとおりです。
説明が長すぎるため、説明の一部を切り捨てなければならなかったことに注意してください。「たくさんのオブジェクト ID」があるところには、たくさんのオブジェクト ID (~400) がありました。
皆さんありがとう
mongodb - $pullまたは$popなしで配列内のn番目の要素を更新するにはどうすればよいですか?
配列内のn番目の位置要素の値を更新するにはどうすればよいですか?
category_idのインデックス2を更新したい。
1つの解決策は($pop
または$pull
)と$addToSet
です。
他に解決策はありますか?
ruby-on-rails - RailsmongoDBの単一接続が必要
Railsアプリケーションを使用しています。RailsアプリケーションのログはmongoDBに格納する必要があります。
すべてのコントローラーのメソッド呼び出しとそのパラメーター、呼び出し日などをログに記録しています。
これが私のアプリケーションコントローラーのコードで、情報をログに記録します
明らかに、私のコードにはいくつかの標準的な問題が必要です。私の実装から、呼び出されるメソッドが発生するたびに、mongoDB接続が確立されます。したがって、接続オブジェクトが自動的に増加し、パフォーマンスの問題になります。接続オブジェクトを取得して挿入操作を実行する必要があるときはいつでも、単一のDB接続が必要です。これどうやってするの。
これについて私を助けてください。
mongodb - MongoDBで多対多の関係をクエリする
私はMongoDBinActionを読んでいて、ドキュメント内の多対多の関係のクエリについて話しているとき、彼が(Rubyドライバーを使用して)クエリの例をどのように書いたかを理解するのに苦労しています。
クエリはproducts
、category
コレクションがある特定のカテゴリのすべての製品を検索しています。著者は、「ガーデニングツールカテゴリのすべての製品をクエリするには、コードは単純です。
PRODUCTドキュメントは次のようになります。
そして、CATEGORYドキュメントは次のようなものです。
誰かが私にそれをもう少し説明してもらえますか?彼がそのクエリをどのように書いたかはまだ理解できません:(
皆さんありがとう。
ruby - Mongodb-Ruby特定のフィールドへの制限
RubyAPIを使用してmongodbからの結果セットのフィールドを制限する際に問題が発生しました。
ファイルに関する情報を保存しているmongoコレクションがあります。フィールドの1つは「image_filename」です。このフィールドを持つコレクション内のすべてのレコードのフィールドとIDを返そうとしています。
mongoシェルでは、これは次の方法で実行されます。
これはうまくいきます。しかし、 RubyAPIを介して同様のクエリを実行しようとすると
nullセットしか取得していません。もう一度、私は明らかに間違ったことをしていると思います。私は上記の考えられるすべてのバリエーションを試しましたが、誰かが私を正しい方向に向けることができますか?
ありがとう!
ruby - collection.insert とデータサイズのジレンマに関する MongoDB
MongoDBデータベースで一括挿入を実行する必要があるこのプロジェクトに取り組んでいます
MongoDB はドキュメント データベースであり、ここに示されているように各ドキュメントのサイズに制限があることを理解しています
一括挿入コードは次のようになります
mass_data
このような配列ハッシュです
配列の全長は 500K ~ 100Kです
基本的にMongoDBのドキュメントである配列に存在する上記のハッシュのどれもサイズが16MBではないことは確かに知っていました
だから私がこれを実行するたびに
上記の状態のように16MBの制限エラーが発生し続ける理由は、配列内の上記のドキュメントのパーセンテージ(つまりハッシュ)のどれもが16MBの個々のものではないことを確信しています。
次に、ドキュメントのデータサイズのエラーが超過する理由
考慮する必要がある場合に、配列全体を単一のドキュメントと見なしますか
個々のドキュメントとしての配列の各ハッシュ
誰でも提案できますか
ところで、MongoDB に接続するために、MongoDB Ruby ドライバーの上に Mongoid ドライバーを使用しています。
ruby-on-rails - Mongoidが書き込んでいる現在のデータベースをプログラムで取得するにはどうすればよいですか?
レール付きのMongoidを使用して、Mongoid.override_database( "database_name")を使用して複数のデータベースと通信しています。プログラムで現在のデータベースを見つけるにはどうすればよいですか?
セッションに関するMongoidドキュメント:http://mongoid.org/en/moped/docs/driver.htmlデータベースをオーバーライドするメソッドを定義しますが、現在のデータベースを使用する方法は定義しません。