当我使用 System.linq 查询 MongoCollection 中的对象时:
var result = collection.Find(query).Where(x => x.something == something);
这是对数据库还是内存中的集合进行的查询?
例如“SetSkip”在 MongoDb 中创建查询,但“Skip”在内存中执行。
如果“.Where”在内存中完成,有没有办法不这样做?
最佳答案
.Where
查询是通过 IEnumerable.Where
在内存中完成的,因为它是在建立 MongoDB 的 Find
调用的结果上执行的要执行的查询。
要将 .Where
查询合并到 Find
中,您可以创建一个新查询,将两个查询结合在一起:
query = Query.And(query, Query<YourType>.EQ(x => x.something, something));
var result = collection.Find(query);
关于c# - MongoDb 查询和 system.linq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26692213/