c# - MongoDb 查询和 system.linq

标签 c# mongodb linq database nosql

当我使用 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/

相关文章:

mongodb - MongoError : not authorized on to execute command { find: "app_updates", 过滤器 : { key: "0.0.1-admins" }, 限制 : 1, batchSize : 1, singleBatch: true }

c# - 按 DocumentDB 中的字段分组

c# - 如何快速将 int 插入排序数组?

node.js - Docker - Node.js + MongoDB - "Error: failed to connect to [localhost:27017]"

c# - 从 Web.config 读取 Hibernate 属性

spring - 使用 Spring Data MongoDB 指定分片集合

c# - 我应该开始使用 LINQ To SQL 吗?

c# - 如何使用 linq 过滤列表取决于对同一列表中的属性进行计数并随机分组至少最小总数

c# - 将参数传递给 Backgroundworker 错误处理程序

c# - 在 C# 中合并多个列表