As a workaround i tried to add multiple or Queries, but this doesn't work too:
Code:
@Test
public void testQueryOr() {
MyResource resource1 = createResource("test.jpg", "image/jpg", "TEST");
MyResource resource2 = createResource("test.jpg", "image/jpg", "PROD");
resource1 = resourceRepository.save(resource1);
resource2 = resourceRepository.save(resource2);
assertNotNull(resource1.getId());
assertNotNull(resource2.getId());
List<MyResource> expected = Arrays.asList(resource1, resource2);
Query query = new Query();
query.addCriteria(Criteria.where("id").is(resource1.getId()));
Query or = new Query();
or.addCriteria(Criteria.where("id").is(resource2.getId()));
query.or(or);
List<MyResource> found = mongoTemplate.find("myResource", query, MyResource.class);
assertNotNull(found);
assertFalse(found.isEmpty()); // fails (empty)
assertEquals(2, found.size());
assertEquals(expected, found);
resourceRepository.delete(resource1);
resourceRepository.delete(resource2);
assertNull(resourceRepository.findById(resource1.getId()));
assertNull(resourceRepository.findById(resource2.getId()));
}