java查询mongodb 嵌套,java - 我如何正确查询多个嵌套数组以查找字符串匹配? -MongoDB - SO中文参考 - www.soinside.com...

我正在尝试建立一个MongoDB查询,在其中我可以搜索一列对象,这些对象都包含多个嵌套的对象数组,其中一个对象的最低级别的属性包含一部分字符串。

这是这些对象的一般结构:{

"name": "Foo"

"structure": {

"configs":[

{

"combinations": [

{

"title": "item1"

},

{

"title": "item2"

}

]

},

{

"combinations": [

{

"title": "item3"

},

{

"title": "item4"

}

]

}

]

}

}

现在,当我搜索“ item1”或仅搜索“ 1”时,我希望返回该示例对象,因为第一个combinations数组包含一个标题为item1的对象。由于我是在Spring Boot中构建应用程序的,因此通常可以通过存储库类中通常的高级findAllByPropertyMatching(String searchTerm)轻松处理查询。由于它的复杂性,在这种情况下这是行不通的,我真的在如何解决这个问题上苦苦挣扎。

我尝试了自定义查询...@Query(value = "{'structure.configs.$[].combination.$[].title': {$regex : ?0, $options: 'i'}}")

public List findAllByStructuregMatchesRegex(String query);

...但是显然有多个问题。

由于数据是从外部来源加载的,因此我无法更改基础数据结构。我也不能缓存所有项目并使用Java逻辑对其进行过滤,因为数据集太大了。

有人能指出我正确的方向吗?非常感谢您的帮助,非常感谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值