2012-03-16 10 views
0

私は何百万ものドキュメントを持つデータベースを持っています。私は各ドキュメントで比較的時間のかかる操作を実行し、それを更新したいと考えています。MongoDBのカーソルからどのように分割/サンプルするのですか?

  1. 与えられたカーソルから無作為に抽出された1000個の文書を欲しいと思ったら、どうすればよいですか?

  2. 100万件のドキュメントを計算して更新したいと思っています。私はクラスター上にあり、1000個の文書の各バッチごとに別々のジョブをディスパッチしたいと考えています。このようなことをする最も簡単な方法は何ですか?

ありがとう!

ウリ

+0

1.残念ながら、標準のカーソルAPIはランダムサンプリングを提供していないため、アプリケーション側で行う必要があります。 2.あなたは何をしたいのか詳細を教えてください。必要なものに応じて、findAndModify、mapreduce、または集約フレームワークをチェックすることができます。 – Ren

答えて

0

これを行うには、ワーカーマネージャーにプッシュする必要があります。私はこれのためのギアマンをお勧めします。その場合、スクリプトは次のようになります。1.更新するすべての文書を照会し、その_idを戻します。 2.すべてのオブジェクトIDをギア・サーバーにプッシュする3.クラスター内の各マシンでギアマン・ワーカー・プロセスを実行する4.各ギア・ワーカーにキューから新しいオブジェクトIDを取得させて文書を処理し、 MonogDB。

関連する問題