Обнаружена ошибка при вызове метода stream
с использованием mongotemplate
Данные в монго под сбором 'order'
{ "_id" : "id1", "merchant_id" : "1234", "merchant" : { "name" : "mer_name", "id" : "1234" } }
Мои Pojos
public class Order {
public String merchant_id;
public Merchant merchant;
}
public class Merchant {
public String id;
public String name;
}
Когда мы вызываем потоковый метод с Order.class
, без записей не будет возвращено
BasicQuery basicQuery = new BasicQuery("{merchant_id:\"1234\"}");
return mongoTemplate.stream(basicQuery, Order.class, "order");
Из журналов Монго (запрос изменен)
D QUERY --- query: { merchant._id: "1234" } sort: {} projection: {}, planSummary: COLLSCAN
Очевидно, что запрос изменяется библиотекой, есть точка (.) added
после продавца . Следовательно, поиск был выполнен по документу NESTED (торговец).
Если вы измените Entity на Map.class
, (запрос не будет изменен) будут возвращены данные
После отладки я обнаружил, что это зависит от
MetadataBackedField.path
Цените любой обходной путь для этого