当我使用System.linq查询MongoCollection中的对象时:
var result = collection.Find(query).Where(x => x.something == something);
这是对数据库或内存中的集合进行的查询吗?
例如" SetSkip"在MongoDb中创建查询但是" Skip"在记忆中做到了。如果"。"在记忆中完成有没有办法不这样做?
答案 0 :(得分:1)
.Where
查询是通过IEnumerable.Where
在内存中完成的,因为它是在Find
调用的结果上执行的,该调用建立了要执行的MongoDB查询。
要将.Where
查询合并到Find
,您可以创建一个将两个查询合并在一起的新查询:
query = Query.And(query, Query<YourType>.EQ(x => x.something, something));
var result = collection.Find(query);