初めて MongoDB C# ドライバーをいじってみましたが、パフォーマンスに奇妙な結果が見られます。順序付けと .Take(1) を使用して 300 万レコードのコレクションをクエリすると、応答はほぼ瞬時 (3 ミリ秒) になります。しかし、同じクエリで .Take(2) を実行すると、最大 10 秒かかります。適切なインデックスが配置されており、テスト データを含む非常に単純なコレクションです。
MongoClient client = new MongoClient();
MongoServer server = client.GetServer();
var database = server.GetDatabase("db_name");
var collection = database.GetCollection<MyType>("collection_name");
var query = from c in collection.AsQueryable<MyType>()
where c.SearchString.Contains(searchString)
orderby c.SearchString
select c.SearchString;
List<string> results = query.Take(2).ToList();