【发布时间】:2012-10-26 07:21:01
【问题描述】:
这些查询中哪一个使用 linq 性能更好,另一个使用原生查询机制
LINQ
var query =
collection.AsQueryable<Employee>()
.Where(e => e.FirstName == "John")
.Select(e => e);
NATIVE
var query= Query<Employee>.EQ(e => e.FirstName, "John");
var emp = collection.FindOne(query);
我假设 mongoDb 中的本机查询机制会更好,因为据我了解,它会过滤掉数据库中的结果,因为 linq 首先获取集合中的所有项目,然后过滤结果。我什么时候应该考虑使用 LINQ 而不是本机查询机制?
【问题讨论】:
-
另一个变体是
var query = Query<Employee>.Where(e => e.FirstName == "John")。然后用query.ToJson()就可以很方便的得到对应的json查询了