【发布时间】:2023-03-20 17:48:01
【问题描述】:
我正在使用spring data mongodb sdk查询mongo db。
mongoDb 中的文档如下所示:
{
"data": {
"suggestions":[
{
"key": "take",
"value": 1
},
{
"key": "donttake",
"value": 0
}
]
}
}
在我的 api 请求中,我的结构类似于上面的“建议”元素。 我想创建一个查询条件,其中“is”子句应该是 api 请求中“suggestions”元素的值。
我使用 spring data mongo db 尝试了以下代码:
JsonParser jsonParser = new JsonParser();
ObjectMapper objMapper = new ObjectMapper();
String jsonArrayString = objMapper.writeValueAsString(apirequest.getSuggestions());
JsonArray arrayFromString = jsonParser.parse(jsonArrayString).getAsJsonArray();
criteria = Criteria.where("data.suggestions").is(arrayFromString);
这段代码的问题在于,当我调试并看到使用上述条件创建的查询时,我输入为 $java: [{"key": "take", "value": 1}]
因此,它无法将其与 mongo 文档匹配,并且不会为我获取任何结果。
还有其他方法可以从 spring data mongo 中查询 mongodb 中的文档数组吗?
【问题讨论】:
标签: mongodb-query spring-data-mongodb