2012-04-27 4 views
0

私は1000アイテムのコレクションを持っています。私は日付(SaveDateUtcフィールド)ごとにそれらを並べ替えるし、それらの上位10を削除するので、私は私のコレクション内の990最新のアイテムが残っている。C#MongoDB、ソートされたコレクションからトップ10を削除します。

私が検索し、削除、何の問題を行うことができますが、私はちょうど削除呼び出しでこれを行うことができれば、それははるかに良いと思います。しかし、私はクエリを使ってトップ10をソートして設定する方法を見つけることができません。

私の質問は、1回の呼び出しでこれを行うことができますか? (私はC#のドライバを使用しています)

答えて

0

は実際に同様の質問があった:MongoDB find and remove - the fastest way

は、しかし残念ながらfindAndUpdateは、レコードの数によって制限することができません。だから、あなたに私の提案:

  • あなたは
  • クエリでフィールドとしてそれを使用することができますので、あなたは、サーバー側でこの操作を行いますのjavaスクリプトサーバー側の機能を所有して書き込むことができ、いくつかの代理フィールドを導入することができます。利点 - 操作はサーバー上で実行されます。これはアトミックです。落とし穴 - それは、断片化されたテーブルでは動作しません。