Полнотекстовый поиск Spring по данным MongoDB с помощью DBRef

Я попытался выполнить полнотекстовый поиск, используя Spring data mongodb, и у меня возникла проблема. У меня есть 3 документа, которые связаны с @DBRef:

@Data
@Document
@NoArgsConstructor
public class Order {
   @DBRef
   private Client client;
   @DBRef
   private Company company;
   private long time;
   @TextIndexed
   private String type;
   ...
}

@Data
@Document
@NoArgsConstructor
public class Client {
    @TextIndexed
    private String name;
    @TextIndexed
    private String lastName;
    ...
}

@Data
@Document
@NoArgsConstructor
public class Company {
  @TextIndexed
  private String name;
  private String type;
  ...
}

поэтому у меня есть OrderRepository, в котором я хочу реализовать критерии запроса, но он работает не так, как я хочу. Я имею в виду, что я делаю запрос в OrderRepository, и он проверяет только все @TextIndexed, только в каком порядке. Я хочу, чтобы он искал не только Заказ, но и связанные с ним документы. Короче говоря, я хочу искать только заказы и связанные с ними документы из OrderRepository. Это вообще возможно? По умолчанию @DBRef не позволяет этого, и я не хочу создавать поисковый запрос для каждого документа. Например, у меня есть заказ, в котором имя клиента - Джеймс. Когда я делаю запрос только по имени «Джеймс», он должен искать все заказы, в которых имя клиента - Джеймс. Как этого добиться? Спасибо

0
0
267
1

Ответы 1

Существует множество ограничений на использование DBREF из MongoDB, лучший способ - использовать ручные ссылки, поэтому взгляните на структуру RelMongo, если вы используете Spring Data MongoDB.

Другие вопросы по теме