MongoDB-查找BinData等于UUID值的地方

时间:2018-10-05 09:49:42

标签: mongodb spring-data-mongodb

我尝试用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" }

所以我的问题是:

  1. 如何使用给定的_id通过UUID在mongo shell文档中查找?
  2. BinData(3,...)中的数字3是什么意思?

1 个答案:

答案 0 :(得分:0)

  1. 要查找文档,您必须将UUID编码为base64。 Please see this question

  2. “ 3”是旧版UUID数据格式的标识符。有关更多信息,请see here

如果您想从应用内查询,则应使用Spring Data的功能,但是从您的问题中,我假设您想知道如何使用mongo本机工具进行查询。