Spring MongoDB запрос с или оператором и текстовым поиском - PullRequest
0 голосов
/ 30 мая 2018

Как я могу построить этот запрос MongoDB с помощью Spring Criteria?

{
  $or: [
    { "$text" : { "$search" : "570-11024" } },
    {"productDetails.code": "572-R110"}
  ]
}

Он сочетает в себе полнотекстовый поиск по индексу с обычными критериями Where и orOperator.

Запрос orOperator (Критерии... критерий) метод принимает только критерии, а не текстовые критерии, а также интерфейс CriteriaDefinition.

1 Ответ

0 голосов
/ 30 мая 2018

Да, вы правы, весной Монго вы могли бы сделать это,

final TextCriteria textCriteria = TextCriteria.forDefaultLanguage().matchingAny("570-11024");
final DBObject tc = textCriteria.getCriteriaObject();
final Criteria criteria = Criteria.where("productDetails.code").is("572-R110");
final DBObject co = criteria.getCriteriaObject();

BasicDBList or = new BasicDBList();
or.add(tc);
or.add(co);

DBObject qq = new BasicDBObject("$or", or);
// Use MongoTemplate to execute command
mongoTemplate.executeCommand(qq);
...