gpt4 book ai didi

c# - Mongo C# 驱动程序 : Deserialize BsonValue

转载 作者:IT老高 更新时间:2023-10-28 13:14:40 25 4
gpt4 key购买 nike

我在 mongodb 中有一个文档,其结构类似于:

{
"_id": "abcdef01234",
"Name": "Product A",
"Dimensions": [
{
"Height": 32,
"Width": 64
},
{
"Height": 16,
"Width": 32
},
{
"Height": 8,
"Width": 16
}
]
}

我还定义了一个类来表示维度(上面的子文档)

public class Dimension
{
public int Height { get; set; }
public int Width { get; set; }
}

我正在以这种方式选择“产品 A”文档:

MongoServer srv = MongoServer.Create(myConnStr);
BsonDocument doc = srv["db"]["products"].FindOneById(ObjectId.Parse("abcdef01234"));
BsonValue dimensionsVal = doc["Dimensions"];

现在我有一个名为 dimensionsVal 的 BsonValue,它的类型是 BsonArray。我真正想要的是一个 List 。如何将 dimensionsVal 转换为 List

编辑维度类实际上比我描述的要复杂得多。由于内存问题,我想将尺寸与产品分开。我想将 Product 保留在内存中,而不是(可能是巨大的)维度列表。因此,我不想将 List 作为 Product 类的属性。

最佳答案

这是如何做到的:

using MongoDB.Bson.Serialization;

MongoServer srv = MongoServer.Create(myConnStr);
BsonDocument doc = srv["db"]["products"].FindOneById(ObjectId.Parse("abcdef01234"));
BsonValue dimVal = doc["Dimensions"];
List<Dimension> d = BsonSerializer.Deserialize<List<Dimension>>(dimVal.ToJson());

关于c# - Mongo C# 驱动程序 : Deserialize BsonValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6700662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com