我正在使用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();
那还是不起作用。