我尝试用Java和Spring Data MongoDB编写应用程序。
我的文档看起来:
@Data
@ToString
public class SomeDocument {
private UUID id;
private String name;
}
存储库:
@Repository
public interface SomeDocumentMongoRepository extends MongoRepository<SomeDocument, UUID> {
}
这很简单。然后我保存了文档:
{
"id": "5f4ac46b-55f7-4be4-b26f-2ca041334bec",
"name": "some name"
}
然后我尝试使用简单查询db.someDocument.find()
从数据库中读取它,结果是:
{ "_id" : BinData(3,"5Ev3VWvESl/sSzNBoCxvsg=="), "name" : "some name", "_class" : "org.springmongodemo.repo.SomeDocument" }
所以我的问题是:
_id
通过UUID
在mongo shell文档中查找?BinData(3,...)
中的数字3是什么意思?答案 0 :(得分:0)
要查找文档,您必须将UUID编码为base64。 Please see this question。
“ 3”是旧版UUID数据格式的标识符。有关更多信息,请see here。
如果您想从应用内查询,则应使用Spring Data的功能,但是从您的问题中,我假设您想知道如何使用mongo本机工具进行查询。