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

C# MongoDB Driver调用Distinct()获取集合键值返回游标而非数组

解决方法

C# MongoDB Driver v2.13版本中,Distinct()方法执行后默认返回游标对象而非直接返回结果集,你可以通过调用对应扩展方法将游标转换为数组格式。

同步调用方案

直接在Distinct()方法后追加ToArray()扩展方法即可得到int类型数组:

var settings = MongoClientSettings.FromConnectionString("<connectionstring>");
var dbClient = new MongoClient(settings);
var database = dbClient.GetDatabase("players");
var newcollec = database.GetCollection<BsonDocument>("sampleplayer");
FieldDefinition<BsonDocument, int > field = "Salary";
// 追加ToArray()得到整数数组
int[] test = newcollec.Distinct(field, new BsonDocument()).ToArray();

如果需要List<int>类型,将ToArray()替换为ToList()方法即可。

异步调用方案

如果你的项目采用异步编程模式,使用异步重载配合ToArrayAsync()方法:

var settings = MongoClientSettings.FromConnectionString("<connectionstring>");
var dbClient = new MongoClient(settings);
var database = dbClient.GetDatabase("players");
var newcollec = database.GetCollection<BsonDocument>("sampleplayer");
FieldDefinition<BsonDocument, int > field = "Salary";
// 异步调用获取整数数组
int[] test = await newcollec.DistinctAsync(field, new BsonDocument()).ToArrayAsync();

上述两种方式都会拉取游标中的所有Distinct结果,转换为你预期的集合格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:48:03