通过_id查找,用于查找数据的选项

时间:2019-06-26 00:44:12

标签: java mongodb spring-boot microservices crud

我正在开发MongoDB Crud微服务,所有的crud操作都可以完成,但是我面临的主要问题是_id字段搜索。

以下是_id的可能值-

  1. _id = "StringValue"-字符串
  2. _id = 1234567-数字
  3. _id = ObjectId("5d097c1bcc84d23fb8e65996")-十六进制值

我正在使用以下代码搜索文档,以下代码适用于String和hex,但这就是我的问题-

 BasicDBObject query = new BasicDBObject();
    try {
        query.put("_id", new ObjectId(fetch.getObjectId()));
    } catch (IllegalArgumentException e) {
        query.put("_id", fetch.getObjectId());
    }
    try(MongoCursor<Document> objectDocCursor = mongoCollection.find(query).projection(Projections.excludeId()).iterator()){
        while (objectDocCursor.hasNext()) {
            objectDoc = objectDocCursor.next();
        }
...

在搜索中是否有用于指定_id的通用选项。而不是检查异常或解析值。

由于这是Crud Service,因此我不能仅将上述数据类型之一限制为文档的键。完全基于使用中的应用程序,他们希望如何保存文档。

我正在使用Mongo Java Driver 3.9.1

0 个答案:

没有答案