如何在c#中将MongoDB BinData转换为Guid

问题描述 投票:0回答:2

我在 MongoDB 中有一个 BinData,我会在 c# 中转换为 Guid。例如,这是我在 MongoDB 文档中的 Guid:

BinData(3, 'E7hI3meCkEC5C/KU8w7BRQ==')
我会转换为 c# Guid 或 c# string。

谢谢

我尝试使用 ConvertFromBase64String 进行转换,但出现错误

c# mongodb bindata
2个回答
1
投票

如果没有更多详细信息,请检查此代码:

        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();

0
投票

如果您想以其他方式将其转换,从 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 + "')}";
© www.soinside.com 2019 - 2024. All rights reserved.