問題タブ [capped-collections]

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

mongodb - Capped Collection MongoDB で更新していますか?

キャップされたコレクションの下を更新する方法.都市を更新したい:「ニューヨーク」を「どこか」に

}

私はこのクエリで作業しました

しかし、代わりにこのエラーが発生しています//

更新の失敗: キャップされた ns のオブジェクトは成長できません。これを解決するにはどうすればよいですか。pls が助けてくれます。

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

mongodb - MongoDB は Capped コレクションのサイズを取得します

作成時に指定したのと同じサイズである、MongoDB の上限付きコレクションの最大サイズを取得することは可能ですか?

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

cassandra - Cassandra の「キャップ コレクション」

Cassandra には上限付きコレクション (または行サイズ制限) はありませんが、それをシミュレートする 1 つの方法は、オフラインの mapreduce ジョブを使用して余分なエントリをクリーンアップすることです。別のテーブルに主キーの行数を格納する 2 つ目のテーブルを用意したほうがよいでしょうか? 欠点は、カウンターはインデックス付けできないため、row_count テーブル全体をスキャンする必要があることです。それとも、実際のデータを使用してバッキング テーブルをスキャンする方が高速でしょうか?

または、私が調べるべき別のテクニックはありますか?

編集: このColumns count vs counter column performanceが見つかりました。行数はすべてのデータを超えるので、私はそれから離れています。

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

mongodb - ReactiveMongo を使用して、キャップされたコレクションから中断されるまでジョブを処理する

jobs_queueMongoDBにコレクションがあります。これは、テーラブル カーソルを使用してポーリングしている上限付きコレクションです。

これは通常の Scala から呼び出されるAppため、Akka や Play のラッピングはまったくありません。

App明示的に から抜け出すまで が終了しないようにする最も適切な方法はIteratee.foreach何ですか? また、より単純な (多少エレガントでなくても) 方法があれば、play-iteratees をまったく使用する必要はありません。


PS 私はコレクションがキャップされていることを確認します:

PPS

また、このビットのロジックをどのように設計したか、およびアプローチを再考して実装を少し見直すことでこれを解決する方法についての批判も歓迎します。

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

mongodb - ソーシャル アクティビティ フィード - MongoDB のユーザーごとの上限付きコレクションのベスト アプローチ?

私は、10Gen Socialite Project と非常によく似たソーシャル アクティビティ フィード システムに取り組んでいます。このプロジェクトは、数年前から運用されています。ユーザーごとに年代順に並べられたアクティビティのリストを保存する必要がある新しいユースケースがあります。アクティビティのリストは次のようにする必要があります。

  1. 最近挿入された N 個のアイテムのみを含む
  2. 意味的に同等のアイテムの重複を挿入しない
  3. 結果のページングを許可します。

これまでのところ、これを解決するための 2 つのアプローチを考え出しましたが、どちらにも厄介な制限があるようです。

最初のアプローチ (私の他のコレクションとよく似ています) は、アクティビティごとに 1 つのドキュメントを含む単一のコレクションを作成し、ユーザー ID でインデックスを作成することです。例えば:

特定のユーザーの新しいアクティビティを受け取るたびに、同じ「所有者」句で異なる「アクティビティ」句を使用して、上記のドキュメントを挿入します。ただし、挿入を処理する最も効率的な方法はわかりません。上記の基準を考えると、1 つの疑似コード アプローチは次のようになります。

このアプローチの問題は、挿入とプルーニングを完了するのに最大 3 回のデータベース操作が必要になることです。ただし、「upsert」を使用すると重複が防止され、生成された ObjectID を一時的なクエリとページネーションに使用できます。

私が調べた別のアプローチは、Socialite のFanoutOnWriteSizedBucketsアプローチに似ています。この場合、アクティビティのリストは最大サイズの配列にサブドキュメントとして格納され、ユーザー ID によってインデックスが付けられます。例えば:

この場合、クエリもかなり簡単ですが、ここでも挿入に問題があります。$update、$push、$addToSet、$ne、$each などのさまざまな手法と組み合わせを使用して調べましたが、重複挿入の防止とプルーニング操作をより効率的な方法で達成できるものはないようです。その上。

このユースケースを解決するためのアプローチを提案できる人はいますか?

ありがとう!

( mongodb -user Google グループに x 投稿) 解決済み : https://groups.google.com/forum/#!topic/mongodb-user/K8n7Gf1nv3Q