MongoDB -获取BsonArray中的所有元素并转换为List< string>

5ssjco0h  于 2023-05-17  发布在  Go
关注(0)|答案(1)|浏览(177)

我有一个包含BsonArray的文档的集合。就像这样:

{
  "_id": {
    "$oid": ""
  },
  "Types": [
    "Type 1",
    "Type 2",
    "Type 3"
  ]
}

我想得到“Types”中的所有“Type”值,这样我就可以在C#中创建一个字符串列表,我可以得到包含Types数组的文档,但我不能创建列表,因为我得到的结果是BsonElement类型。
这是我目前为止的代码:

var filter = Builders<BsonDocument>.Filter.Exists("Types", true);
var projection = Builders<BsonDocument>.Projection.Include("Types").Exclude("_id");
var result = collection.Find(filter).Project(projection).First();

投影似乎是有效的,因为我得到的结果是这样的,但我不能得到列表中的元素。

Types=["Type 1", "Type 2", "Type 3"]
velaa5lx

velaa5lx1#

如果我没有误解你的问题,你正在尝试从BsonArray转换为List<string>
使用 * System.Linq * 将每个BsonValue转换为string类型,并以List<string>类型输出结果。

using MongoDB.Bson;
using System.Collections.Generic;
using System.Linq;

List<string> types = ((BsonArray)result["Types"]).Values
    .Select(x => x.AsString)
    .ToList();

相关问题