MongoDB Spring Data Hashmap查询搜索数字键

时间:2015-08-04 01:54:21

标签: spring mongodb orm hashmap spring-data

以下json数据是文档的一部分:

"ahashMap" : {
    "1" : {
        "type" : "STOCK"
    }
}

要在MongoDB shell中查询上述文档,只需执行以下脚本:

db.COLS.findOne({'aHashMap.1.type':'STOCK'})

此外,要使用Spring Data进行查询,它也适用于以下代码:

    Query q = new Query(Criteria.where("aHashMap.1.type").is("STOCK"));
    Col c = mongoOperation.findOne(q, Col.class);

但是,它仅适用于旧版Spring Data,例如1.7.0。然后我尝试将源代码与旧版本和新版本进行比较。对于最新版本(如1.7.2),Spring Data会从查询中删除.digit,因此找不到任何结果。它将视为MongoDB的以下查询:

db.COLS.findOne({'aHashMap.type':'STOCK'})

我对Spring Data的这种解释感到困惑。任何人都会解释背后的原因以及如何在不重组文档的情况下处理查询。谢谢。

1 个答案:

答案 0 :(得分:1)

此错误已在Spring Data MongoDB 1.8.0

中修复