Привет, у меня возникла проблема с mongotemaplte для создания запроса, подобного этому:
{"metadata" : {
"$all" :[
{"$elemMatch" : {"name" : "key_1", "value" : "value_1"}},
{"$elemMatch" : {"name" : "key_1", "value" : "value_2"}}
]
}
Я написал этот код:
List<Criteria> criteriaElementMatch = new ArrayList<>();
for (Map.Entry<String, Set<String>> entry :
keyValues.entrySet()) {
for (String value:
entry.getValue()) {
criteriaElementMatch.add(new Criteria().elemMatch(Criteria.where("name").is(entry.getKey()).and("value").is(value)));
}
}
//add element match to and query
criteria.add(Criteria.where("metadata").all(criteriaElementMatch));
, но распечатав его, я получил:
{ "metadata" : { "$all" : [
{ "$java" : org.springframework.data.mongodb.core.query.Criteria@d7d7d656 },
{ "$java" : org.springframework.data.mongodb.core.query.Criteria@d7d7d657 }
]
}
}
кажется, что новый Criteria (). ElemMatch плохо управляется или в чем я не прав?
заранее спасибо