MongoDb linq和内存查询。我如何在DB中知道它的查询

时间:2014-11-06 21:10:04

标签: c# performance linq mongodb

之前已经多次询问过,我得到了不同人的不同答案。

有人说当时:

collection.AsQueryable<object>().Where()

用于“Where”操作在内存中完成,其他人说它转换为mongo查询。

当我引用:使用MongoDB.Driver.Linq;

我可以访问AsQueryable()但是我不能在没有引用System.Linq的情况下链接一个“Where”子句。

所以我通过将80,000个复杂对象插入到我的本地mongo db中并进行了简单的查询来进行测试。返回50个这些对象的任何给定页面大约需要5秒钟。这让我相信它在记忆中完成了。

文档似乎主张使用普通Linq进行查询: http://docs.mongodb.org/ecosystem/tutorial/use-linq-queries-with-csharp-driver/

但是在示例中它没有引用System.Linq。它还指出Linq可以在1.8版本上使用。我的版本高于那个,所以我应该没事。

1 个答案:

答案 0 :(得分:0)

通常,如果您将这些功能应用于collection.AsQueryable<object>(),则可以在MongoDb中完成。如果你在应用.ToList()函数或任何实际从枚举中读取的类似函数后执行此操作,它将在内存中完成。

要自行检查,请在单独的说明中执行AsQueryable()Where(),然后使用调试器进行检查。