Я попытался выполнить полнотекстовый поиск, используя 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 не позволяет этого, и я не хочу создавать поисковый запрос для каждого документа. Например, у меня есть заказ, в котором имя клиента - Джеймс. Когда я делаю запрос только по имени «Джеймс», он должен искать все заказы, в которых имя клиента - Джеймс. Как этого добиться? Спасибо
Существует множество ограничений на использование DBREF из MongoDB, лучший способ - использовать ручные ссылки, поэтому взгляните на структуру RelMongo, если вы используете Spring Data MongoDB.