使用Spring Data MongoDB标准查找具有不同值组合的多个MongoDB记录

发布于 2025-02-10 02:00:04 字数 838 浏览 3 评论 0原文

我有一个名字,姓氏和出生年份的收藏。

[
    {
        "firstName": "John",
        "lastName": "Smith",
        "birthYear": 1990
    },
    {
        "firstName": "Jane",
        "lastName": "Smith",
        "birthYear": 1989
    },
    {
        "firstName": "John",
        "lastName": "Doe",
        "birthYear": 1990
    },
    {
        "firstName": "Jane",
        "lastName": "Doe",
        "birthYear": 1990
    }
]

我试图找到带有生育= 1990的记录,并且((firstName = john and lastname = smith)或(firstName = jane = jane and lastname = doe))。

我想要的结果是,

[
    {
        "firstName": "John",
        "lastName": "Smith",
        "birthYear": 1990
    },
    {
        "firstName": "Jane",
        "lastName": "Doe",
        "birthYear": 1990
    }
]

有一种方法可以使用Spring-Data-MongoDB的查询和标准来执行此操作?

I have a collection with first name, last name and birth year.

[
    {
        "firstName": "John",
        "lastName": "Smith",
        "birthYear": 1990
    },
    {
        "firstName": "Jane",
        "lastName": "Smith",
        "birthYear": 1989
    },
    {
        "firstName": "John",
        "lastName": "Doe",
        "birthYear": 1990
    },
    {
        "firstName": "Jane",
        "lastName": "Doe",
        "birthYear": 1990
    }
]

And I trying to find records with birthYear=1990 and ((firstName=John AND lastName=Smith) or (firstName=Jane AND lastName=Doe)).

The result I want is the following

[
    {
        "firstName": "John",
        "lastName": "Smith",
        "birthYear": 1990
    },
    {
        "firstName": "Jane",
        "lastName": "Doe",
        "birthYear": 1990
    }
]

Is there a way to do this using spring-data-mongodb's Query and Criteria?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暗地喜欢 2025-02-17 02:00:04

您可以使用标准查询

Query qa =
  Query.query(
      new Criteria()
          .orOperator(
              Criteria.where("firstName").is("John").and("lastName").is("Smith").and("birthYear").is(1990),
              Criteria.where("firstName").is("Jane").and("lastName").is("Doe")));

,也可以写两种JPA方法,例如findallbyfirstnameandlastnameandbirthyear(字符串firstName,string lastName,int birtheryear) and code> findallbyfirstnameandlastnameandlastnamedlastname(string firstName,string fartname,coble> and coble> and coble> and coble> combine

You may use Criteria query like

Query qa =
  Query.query(
      new Criteria()
          .orOperator(
              Criteria.where("firstName").is("John").and("lastName").is("Smith").and("birthYear").is(1990),
              Criteria.where("firstName").is("Jane").and("lastName").is("Doe")));

or you can write two jpa methods like findAllByFirstNameAndLastNameAndBirthYear(String firstName, String lastName, int birthYear) and findAllByFirstNameAndLastName(String firstName, String lastName) and combine both list together.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文