在MongoDb中存储一个Guid列表作为字符串列表

本文关键字:列表 Guid 一个 字符串 MongoDb 存储 | 更新日期: 2023-09-27 18:28:26

我想在MongoDB中以字符串列表的形式存储一个Guid列表。对于单个Guid,我使用以下属性:

[BsonRepresentation(BsonType.String)]
public Guid GuidId{ get; set; }

有没有一个属性可以做同样的事情:

public List<Guid> GuidIdList { get; set; }

我发现了如何使用约定来完成它,但我真的很喜欢使用一个属性:

如何告诉MongoDB C#驱动程序以字符串格式存储所有Guid?

在MongoDb中存储一个Guid列表作为字符串列表

根据工作人员的建议,我尝试了一个小测试:

[BsonRepresentation(BsonType.String)]
public List<Guid> GuidIds { get; set; }

你猜怎么着,真管用!这就是您在MongoDB中看到的:

{
  "_id" : ObjectId("5450fa00f0640335e4117d46"),
  "GuidId" : "f9e22da8-97c5-4dc7-ab26-ce5e095427a4",
  "GuidIds" : ["48e1d0a9-74a6-4b51-af6b-b217012adeac", "5e1751b1-d945-4baa-beed-847e9696caa9"]
}

因此,该属性正在处理列表中的元素。我以为它会对列表本身进行字符串表示。


额外信息,没有属性

public List<Guid> GuidIds { get; set; }

你可以在MongoDB中得到这个:

{
  "_id" : ObjectId("5450fc4bf0640327b82cb259"),
  "GuidId" : "e76f37a1-eba6-4afe-8ee4-8d431f97978c",
  "GuidIds" : [new BinData(3, "E4x6bMtj606H06snHwmVGw=="), new BinData(3, "uV9vktKLzkOF/ylcOckfYg==")]
}