我正在开发MongoDB Crud微服务,所有的crud操作都可以完成,但是我面临的主要问题是_id
字段搜索。
以下是_id的可能值-
"StringValue"
-字符串1234567
-数字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