You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用C# NuGet包从MongoDB所有记录中选取单个字段

实现SQL SELECT name FROM student 的MongoDB C#操作

要实现不带WHERE条件的查询,只需要把原示例中的filter替换为空过滤条件即可,空过滤会匹配集合中的所有文档,对应SQL里无WHERE子句的情况。

基于BsonDocument的实现代码

// 定义投影:只包含name字段,排除默认的_id字段
var projection = Builders<BsonDocument>.Projection.Include("name").Exclude("_id");
// 使用空过滤条件查询所有文档,再应用投影
var result = collection.Find<BsonDocument>(FilterDefinition<BsonDocument>.Empty)
                       .Project(projection)
                       .ToList();

也可以通过Builders生成空过滤,写法等价:

var emptyFilter = Builders<BsonDocument>.Filter.Empty;
var result = collection.Find<BsonDocument>(emptyFilter)
                       .Project(projection)
                       .ToList();

(可选)基于强类型实体类的实现

如果项目中使用了强类型Student实体类(比如包含Name属性),代码会更直观:

// 定义投影,仅选择Name属性
var projection = Builders<Student>.Projection.Include(s => s.Name).Exclude(s => s.Id);
// 查询所有学生并投影到指定字段
var result = collection.Find<Student>(FilterDefinition<Student>.Empty)
                       .Project(projection)
                       .ToList();

执行后,返回结果完全对应SQL语句SELECT name FROM student的效果:获取student集合中所有文档的name字段,且不包含默认的_id字段。

内容的提问来源于stack exchange,提问作者Mr Giggles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 13:03:12