Ошибка: Mongo Stream, запрос изменен библиотекой - PullRequest
0 голосов
/ 30 августа 2018

Обнаружена ошибка при вызове метода 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

Цените любой обходной путь для этого

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...