当前位置: 首页 > 工具软件 > BinData > 使用案例 >

bindata java_Mongodb在Java中将.Net GUID转换为BinData

红富
2023-12-01

我正在使用Mongo.Net驱动程序在MongoDB中插入文档,我需要使用Java驱动程序获取文档。

我的模型:

public class Person{

public Guid Id {get;set;}

public Guid FatherId{get;set;}

public string Name{get;set;}

}

我正在使用下面的C代码向MongoDb插入一个文档。

var id= Guid.NewGuid();

Persons.InsertOne(new Person(){Id = id,Name = "Joe"});

现在,有了这个id,如何使用Mongo Java驱动程序找到相同的文档?

我试过:

Person person=Persons.find(eq("_id", id))).first();

但我没有得到任何结果,我已经研究过了,似乎在使用find之前,id应该转换为Base64。

所以我尝试了以下几点:

public String uuidToBase64(String str) {

java.util.Base64.Encoder encoder=Base64.getUrlEncoder();

UUID uuid = UUID.fromString(str);

ByteBuffer uuidBytes = ByteBuffer.wrap(new byte[16]);

uuidBytes.putLong(uuid.getMostSignificantBits());

uuidBytes.putLong(uuid.getLeastSignificantBits());

return encoder.encodeToString(uuidBytes.array());

}

Person person=Persons.find(eq("_id", BinData(3,uuidToBase64(id))))).first();

那还是不起作用。

 类似资料: