Я использую Mongo с данными Spring.
У меня есть два (первый класс) сущностей (@Documents) Entity1 и Entity2, где Entity1 имеет ссылку (@DBRef) Entity2 внутри него. Все работает нормально, но при выполнении производных запросов, таких как:
public List<Entity1> findByEntity2Property1(String property1)
Вышеприведенный запрос не возвращает результатов, хотя есть документы с заданными параметрами запроса. Почему это?
Я не думаю, что запрос может работать так, как вы ожидаете, что он будет работать, поскольку MongoDB в значительной степени не позволяет ограничивать результаты по свойствам связанных документов, на которые указывает через DBRef
. Поэтому вам необходимо запросить все экземпляры Entity2
, соответствующие заданному значению свойства Property1
, а затем запросить экземпляры Entity1
, соответствующие свойству DBRef
ed, по сравнению с результатами первого запроса.
then query for Entity1 instances matching the DBRefed property against the results of the first query
- как это сделать?