私のデータベースには、ドキュメントにscore
フロート(-1..1
)であるフィールドがあるコレクションがあります。データベースにクエリを実行して、スコア順に並べられた最初の 20 件の結果を返すことができます。
私の問題は、フィールドに基づいて時間ペナルティでドキュメントのスコアを変更したいということですtime_updated
。ドキュメントが古いほど、スコアは低くなるはずです。そして大きな問題は、実行時にこれを行わなければならないことです。すべてのドキュメントを反復処理し、スコアを更新してから、スコアで並べ替えることができます。しかし、コレクションには膨大な量のドキュメントがあるため、これには時間がかかりすぎます。
私の質問は次のとおりです。MongoDB では、計算されたプロパティで注文できますか? それを行う方法はありますか?または、MongoDB の次のバージョンの計画に機能はありますか?