Я работаю над микросервисом MongoDB Crud, все операции crud могут быть выполнены, но главная проблема, с которой я сталкиваюсь, это _id
поиск по полю.
Ниже приведены возможные значения _id -
- _id =
"StringValue"
- Строка
- _id =
1234567
- номер
- _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