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

使用spring-data-mongodb基于DBRef列表中匹配元素的查询

仲学真
2023-03-14

我对MongoDB很陌生。我在Java中使用spring-data-mongodb进行查询。请指导我,如果这是可以实现的。

假设我有两个对象“car”和“user”,如下所示,其中car有用户列表,

Class Car {

    @Id
    String id;
    String model;
    @DBRef
    List<User> users;
    @DBRef
    Company company;

}

Class User {

    @Id
    String id;
    String name;

}
new Query(Criteria.where("company.$id").is(new ObjectId(companyId)))

但是,如果有一个引用为DBREF的元素列表,如何实现这一点??

多谢帮忙。

共有1个答案

林烨华
2023-03-14

查询数组中的一个元素与查询字段相等性完全相同。您可以在这里阅读MongoDB文档。因此您的查询将是:

new Query(Criteria.where("users.$id").is(new ObjectId(userId)))
 类似资料:
  • 我试图使用在模型中创建一个列表,但我无法使其工作。这是我的用户模型: 服务器型号: 结构非常简单,每个用户可以有多个服务器。但是,当我向用户添加服务器时,服务器就创建了,但是servers数组包含一个条目()。因此服务器不会添加到用户中。这就是我如何创建服务器并将其添加到用户: 所以我只需创建并保存一个服务器,将服务器添加到用户,然后保存用户。但不管用。我一直有一个数组,其中有一个项。 我所有的库

  • 我正在用spring boot编写代码,它将csv作为输入,创建mongodb集合并将其插入mongodb。 目前,我坚持在基于spring boot的代码中使用mongodb。在MongoRepository接口上使用save方法时,我收到NullPointerException。 可能这个问题是由于不正确的配置在application.yml文件下面是mongodb特定的变化在applicat

  • 我正在尝试解析下面的xml以根据某些条件获取ScId元素值。此条件在xpath字符串中提及,然后在xpath Next字符串中选择ScId值。 我使用VTD xml解析器使用嵌套的xpath查询来获取ScId值,该值以RC开头,类型=Daycare。 下面是代码 解析逻辑是 这是我的回报 解析值为SC101-91-new 虽然我期待它是 解析值为RC101-92-新

  • 问题内容: 我有一个很长的浮点数列表,范围从1到5,称为“平均值”,我想返回小于a或大于b的元素的索引列表 但是令人惊讶的是,“ matches”的输出中有很多重复,例如。 为什么会这样呢? 问题答案: 您正在使用它将仅在列表中找到您的值的 第一个 匹配项。因此,如果在索引2和索引9处的值为1.0,则无论列表中发生了多少次,都将 始终 返回。 使用到索引添加到您的循环,而不是: 您可以将其折叠为列

  • 问题内容: 我的情况是: 我想知道是否有一个名字和年龄相同但不在乎的人。 什么是最快的方法? 问题答案: 为自己定义一个关键对象,该对象可以保存并比较所需的属性。在这种简单情况下,您可以使用一个小的列表,而每个索引对应一个属性。对于更复杂的情况,可以使用(使用属性名称作为键)或专用类: 具有这种映射功能。您可以使用简单的解决方案: 当您的列表很大时,这可能会导致性能不佳。如果列表很大(或者无法预测

  • 我有一个数字列表L。还有另一个数字列表M。我需要返回一个在L和M中找到的数字列表L。 编辑:从数学上讲,我正在寻找多集交点。 例子: L=3,,4,,5,,,6 M=,7,,,,1 L'=9,1,2,1 我为此编写了以下代码: 虽然它达到了目的,但我想知道是否有一种惯用的Perl6方法可以做到这一点? 一些背景:我一直在尝试一起学习Perl6和Python,并用这两种语言解决相同的难题。Pytho