之前已经多次询问过,我得到了不同人的不同答案。
有人说当时:
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版本上使用。我的版本高于那个,所以我应该没事。
答案 0 :(得分:0)
通常,如果您将这些功能应用于collection.AsQueryable<object>()
,则可以在MongoDb中完成。如果你在应用.ToList()
函数或任何实际从枚举中读取的类似函数后执行此操作,它将在内存中完成。
要自行检查,请在单独的说明中执行AsQueryable()
和Where()
,然后使用调试器进行检查。