問題タブ [moped]

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 投票する
1 に答える
945 参照

ruby-on-rails - Ruby Mongoid Moped で upsert オプションを使用して更新する方法

データが既に存在する場合は、MongoDB の一部のデータを更新する必要があります。更新しない場合は、このデータでレコードをアップサートまたは作成する必要があります。私のモデルは次のとおりです。

次に、このクエリがあります

ただし、このクエリは追加Garage _idされcarsないため、正しく機能しません。別のクエリも試しました:

しかし、オプションを取らない{upsert: true}ので、まだ存在しない場合はレコードを作成しません! それから私はこれを試しました:

取得エラー:

誰もそれを修正する方法を知っていますか? 助けてくれてどうもありがとう!

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

ruby - 統計用の MongoDB 検索クエリ

いくつかの HTTP 要求情報を含むイベント コレクションが MongoDB にあります。特定の「パス」値に基づいて、最も応答した「dyno」を見つける方法があるかどうかを知りたいです。たとえば、「random_path_users」の場合、この特定の種類のリクエストに対して、カウント数が他の dyno よりも優れている「dyno」値を見つけたいと思います。

0 投票する
0 に答える
294 参照

mongodb - mongodb $group 集約は、配列として複数の値を持つ _id を生成します。_id から重複を削除するには?

特定の所有者に関連付けられたいくつかのインデックスを収集するために、非常に単純な集計を実行しようとしています。私のクエリは次のとおりです(モペット構文):

それが機能全体です。問題は、「owners.owner」フィールドが 2 つの形式を取ることができることです。多くの場合、ネストされた配列であり、複数の当事者名がレコードに関連付けられています。ただし、単一のレコードにすることもできます。

フォーム 1:

(はい、多くの場合、エントリは配列内で繰り返されます。2 人以上の異なる所有者である場合もあります。)

フォーム 2:

この場合、配列に埋め込まれていないことに注意してください。したがって、配列が埋め込まれていないドキュメントはエラーを返すため、集計プロセスの $unwind ステップが機能するかどうかはわかりません。

とにかく、集計の結果は次のようなレコードを生成します。

次のようなレコードもあります。

つまり、「party_name」フィールドは一意の場合もあれば、2 つ以上の異なる文字列の場合もあります。

私の質問は、「_id」フィールドから重複する文字列を削除し、個別の値のみを保持するために、この集計をさらに改良するにはどうすればよいですか?

たとえば、最初のケースでは、結果は次のようになります。

2 番目のケースでは、結果は同じになります。

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

ruby-on-rails - 関連付けによって見つかったレコード

私はこのようなモデリングを持っています

過去 24 時間に最も多くのメッセージを受け取った上位 3 つのルームを見つける必要がありますが、どこから始めればよいかわかりません。
多分map/reduceで何か?

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

ruby-on-rails - Mongoid 優先リードレプリカ

地理的に冗長な MongoDB レプリカ セットを構築していますが、問題があります。クエリがデータベースに送信されるたびに、明らかにランダムなレプリカが選択されます。

ご覧のとおり、3 番目のレプリカが最も近いため、別のレプリカから読み取るのは時間の無駄ですが、次のようになります。

問題は、優先読み取りの IP アドレスを指定するか、MOPED に最速のものに接続するように指示することはできますか?

mongoid.yml ファイルは、4 つのレプリカすべてを指定するようになりました。

1 つのオプションは、マスターと最も近いレプリカのみを手動で設定することです。

しかし、障害が発生した場合に可用性が低下するため、良い解決策ではないと思います。

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

mongodb - モペット:挿入後にIDを取得

mongo-ruby-driver を使用して新しいドキュメントを挿入すると、生成された '_id' が返されます。

Moped を使用して挿入を行った後、ドキュメントの '_id' を取得しようとしています:

モペットを使用してIDを取得するにはどうすればよいですか?

アップデート:

私もセーフモードを使用しようとしましたが、うまくいきません:

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

mongodb - Mongoid エラーリダイレクト

mongoid からのエラーから発生した出力をリダイレクトできるようにしたいと考えています。次のレイアウトにいくつかの簡単なコードがあります。

エラーが発生すると、次の形式で取得します。

このエラーは、例外が実際にキャッチされて表示されるまでに数回表示されます。エラーが発生することは問題ありませんが、上記のエラー出力を非表示/表示せず、例外のみを表示したいと考えています。ConnectionFailure エラーから発生したエラー出力をリダイレクトする方法はありますか。または、エラー メッセージが表示されないように mongoid を構成する方法はありますか (コンソールから実行しています)。エラーをリダイレクトする方法は役に立ちます。

0 投票する
0 に答える
409 参照

mongodb - ConnectionPool::PoolShuttingDownError は、Mongodb replicaSet を使用して application_controller レールによって時々スローされます

2 つの異なるサーバーで RoR アプリケーションを実行しています。同じバージョンのアプリを実行し、構成も似ています。任意のサーバーとして 3 番目のサーバーと両方のサーバーで実行されている Mongodb レプリカ セットがあります。

すべてが正常に動作します。データは完全に同期しています。しかし、2 週間実行した後、サーバーの 1 つが ConnectionPool::PoolShuttingDownError を返し始めました。ログを確認したところ、アプリケーション コントローラーでエラーが発生したことがわかります。どのサーバーのコードも変更しませんでした。

エラーを発生させているサーバーは、6 ~ 7 の同時リクエストを取得するまで問題ありません。または、ページを 6 ~ 7 回まとめて更新した場合。このエラーが 1 回発生し、再度ページを更新すると、通常の状態に戻ります。これは奇妙で、なぜあるサーバーにはこの問題があり、他のサーバーには問題がないのか理解できません。

Moped、Rails 4.1.0、および Ruby 2.1.5 で Mongoid を使用しています。また、約 51158 である db.serverStatus().connections を使用して利用可能な接続を確認し、最大プロセスの ulimit は 257185 です。

よく検索しましたが、この問題の原因はまだわかりません。誰かがこの問題に光を当てることができれば、それは素晴らしいことです. どんな助けでも大歓迎です。前もって感謝します。