我在 MongoDB 中有一个 BinData,我会在 c# 中转换为 Guid。例如,这是我在 MongoDB 文档中的 Guid:
BinData(3, 'E7hI3meCkEC5C/KU8w7BRQ==')
我会转换为 c# Guid 或 c# string。
谢谢
我尝试使用 ConvertFromBase64String 进行转换,但出现错误
如果没有更多详细信息,请检查此代码:
var guid = new Guid();
var binary = new BsonBinaryData(guid, GuidRepresentation.Standard);
var result = binary.ToGuid(GuidRepresentation.Standard);
(guid == result).Should().BeTrue();
或:
var bytes = Convert.FromBase64String("E7hI3meCkEC5C/KU8w7BRQ==");
var binaryData = new BsonBinaryData(bytes, BsonBinarySubType.UuidLegacy);
var result = binaryData.ToGuid(GuidRepresentation.CSharpLegacy);
var guid = new Guid(bytes);
(guid == result).Should().BeTrue();
如果您想以其他方式将其转换,从 GUID 转换为 bson 二进制数据,请执行以下操作:
var guid = new Guid("9ae2dd4d-7785-4cb3-83e5-8ad9254d593c");
MongoDB.Bson.BsonValue bsonVal = guid;
var bsonBase64 = Convert.ToBase64String(bsonVal.AsBsonBinaryData.Bytes);
var mongoDbExampleQuery = "{'_id':BinData(3, '" + bsonBase64 + "')}";