以下查询在mongo shell中完美运行。
db.collection.find({ "_id" : UUID("87aa9ed6-8485-4517-8e90-08e521372e9a")})
我想在java中以编程方式实现相同的功能。我尝试过以下方法,但没有得到任何结果。
1) collection.find(eq("_id", "87aa9ed6-8485-4517-8e90-08e521372e9a"));
2) `UUID uuid = UUID.fromString("87aa9ed6-8485-4517-8e90-08e521372e9a");
collection.find(eq("_id", uuid));`
答案 0 :(得分:0)
如果已定义mongoTemplate,则可以将其用于单个UUID
Query query= new Query();
query.addCriteria(Criteria.where("_id").is(uuid));
mongoTemplate.findOne(query,YourObjectName.class);
如果您有多个UUID,则可以使用条件或操作员
Query query= new Query();
Criteria criteria=new Criteria();
List<Criteria> orCriteria=new ArrayList<>();
String[] splitId=ids.split(",");
for(String id:splitId){
UUID uuid = UUID.fromString(id);
orCriteria.add(Criteria.where("_id").is(uuid));
}
criteria.orOperator(orCriteria.toArray(new Criteria[orCriteria.size()]));
query.addCriteria(criteria);
mongoTemplate.find(query,YourObjectName.class);
Lmk,如果可行的话。