webmethod需要很长时间才能返回结果

时间:2016-11-08 01:25:19

标签: jquery ajax mongodb autocomplete

我写了一个非常快速的自动完成脚本,但是当我将它部署到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();
    }

1 个答案:

答案 0 :(得分:0)

好的 - 找到了解决方案。问题与.Sort()方法有关。返回结果需要一段时间。刚删除它。它解决了问题