私はこのようなC#コードを見つけました(Collection
タイプはMongoCollection<T>
hereです):
Collection.AsQueryable()
.OrderByDescending(i => i.SomeField)
.Where(i => i.OtherField == "bla-bla")
サーバー上でソート (OrderBy) とフィルタリング (Where) の両方を期待どおりに実行せず、代わりに MongoDb エンジンでソートを呼び出し、それ以降のフィルタリングはすべてクライアント側で処理されるため、かなりの時間がかかります。コード実行の結果としてMongodbプロファイラーで見つけたもの:
"query" : {
"$query" : { },
"$orderby" : {
"SomeField" : -1
}
}
メモ$query
は空です。さて、データベースで動作させる方法について何か考えはありますか (ソートとフィルタリングの両方)?