Найти по _id, варианты поиска данных - PullRequest
0 голосов
/ 26 июня 2019

Я работаю над микросервисом 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

...