我写了一个非常快速的自动完成脚本,但是当我将它部署到IIS时,每当我输入一个新的字母时它需要28秒。我做错了什么?
我正在使用Ajax和jQuery来实现这一切
我方法的代码如下:
[WebMethod]
public static string[] GetCustomers(string prefix)
{
string connectionString = "mongodb://localhost:27017";
MongoClientSettings settings = MongoClientSettings.FromUrl(new MongoUrl(connectionString));
MongoClient mongoClient = new MongoClient(settings);
var _database = mongoClient.GetDatabase("test");
IMongoCollection<BsonDocument> collection = _database.GetCollection<BsonDocument>("mycollection");
var filter = new BsonDocument { { "name", new BsonDocument { { "$regex", prefix }, { "$options", "i" } } } };
var sort = Builders<BsonDocument>.Sort.Descending("mycolumn");
var fields = Builders<BsonDocument>.Projection.Include("name").Include("anothercolumn");
var c = collection.Find(filter).Sort(sort).Project(fields).Limit(10).ToList(); // or toCursor
List<string> customers = new List<string>();
foreach (var document in c)
{
document.Elements.ElementAt(2).Value, document.Elements.ElementAt(1).Value));
}
return customers.ToArray();
}
答案 0 :(得分:0)
好的 - 找到了解决方案。问题与.Sort()方法有关。返回结果需要一段时间。刚删除它。它解决了问题