当前位置: 首页 > 知识库问答 >
问题:

使用Spring数据MongoDb标准查询另一个列表中包含的列表

糜野
2023-03-14

我试图搜索一个列表包含另一个列表与MongoDB。

{_id:1,list:[1,2,3,4]}
{_id:2,list:[1]}
{_id:3,list:[1,3,4,6]}

我将使用字符串列表进行搜索。假设列表L=[1,2,3,4,5]

例如,对于给定的列表L=[1,2,3,4,5],我希望返回带有_id1和2的文档。3不能返回,因为6不在L中。

我找到了两个解决方案

由于我想使用Spring Data MongoDb Criterias,我尝试编写上述解决方案,但代码似乎不起作用,它返回所有文档

共有1个答案

甄霖
2023-03-14

您可以使用:

List<Integer> l = List.of(1,2,3,4,5); 
Query query = new Query();
query.addCriteria(Criteria.where("list").not().elemMatch(new Criteria().nin(l)));
 类似资料:
  • 我正在开发一个库API,我的目标是搜索一本书。目前这本书有两个我想搜索的有趣值:标题和简介(书背面的文本)。 底层数据库是MariaDB。 我构建了一个JPA查询: query和query2的内容相同。对于单词搜索,这种方法效果很好,但当两个或多个单词混合在简介和标题中时,这种方法就停止了。这是可以理解的。 我的第二次尝试是将每个术语拆分为字符串值列表。 这也不起作用。应用程序无法编译。 是否有方

  • 问题内容: 我有两个带有不同对象的列表。 我想检查list2中的元素是否存在于list2中,基于特定的属性(Object1和Object2具有(以及其他),一个共有属性(类型为Long),名为attributeSame)。 现在,我这样做是这样的: 但是我认为有一种更好,更快的方法可以做到这一点:)有人可以提出吗? 谢谢! 问题答案: 如果只需要测试基本相等性,则可以使用基本JDK来完成,而无需在

  • 我有两个不同对象的列表。 我想根据特定的属性(Object1和Object2有一个共同的属性(类型为Long),名为AttributeName),检查list2中是否存在list1中的元素。 现在,我是这样做的: 但我认为有更好更快的方法可以做到这一点:)有人能提出吗? 谢谢

  • 我在数据库中有一个包含(id、日期、类别、行、持续时间)的表,我每天都有许多注册表,例如(1,12/12/2014,cat1,ligne1,12)(2,12/2014,cat2,ligne1,10)(3,12/12/2014,cat3,ligne2,23) (4,13/12/2014,cat1,LINGE1,10)(5,13/12/2014,cat2,LINGE1,20)(6,13/12/2014

  • 问题内容: 我有两个列表,一个包含 相册,文件对的 列表,另一个仅包含有关一张照片的信息- 相册 (位置0)和 文件 (位置1) 如何查看 照片 列表是否在 照片 列表中?就像字符串一样。 相册 , 文件的 位置无关紧要,因为不会有任何 文件 等于 相册 。 问题答案: 同样喜欢字符串。不仅如此,也是 如此 。也适用于列表中的列表: 对列表的成员资格测试仅迭代列表,并对每个元素使用相等性测试以查看

  • 问题内容: 我需要执行django查询,以检查字段是否包含列表中的所有值。该列表的长度将有所不同 例 问题答案: 对于python 3