错误:Mongo流,查询已按库更改

时间:2018-08-30 11:04:52

标签: mongodb spring-boot spring-data

使用stream调用mongotemplate方法时发现了一个错误

mongo中“订单”集合下的数据

{ "_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");

来自Mongo日志(查询已更改)

D QUERY --- query: { merchant._id: "1234" } sort: {} projection: {}, planSummary: COLLSCAN

很明显,查询是由库更改的,商家后有DOT(。)added 。因此,搜索是在NESTED(商家)文档上完成的。

如果将Entity更改为Map.class,将返回(查询不会更改)数据

调试后,我发现它取决于

  

MetadataBackedField.path

赞赏所有解决方法

0 个答案:

没有答案