【发布时间】:2014-11-06 21:10:04
【问题描述】:
这个问题以前被问过很多次,我从不同的人那里得到了不同的答案。
有人说当:
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 版本上使用。我的版本比那个高,所以我应该没问题。
【问题讨论】:
标签: c# performance linq mongodb