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

编写Spring Data Mongo Null查询以从mongo获取NULL文档?

萧英睿
2023-03-14

我正在开发Spring-Spring数据Mongo示例。在本例中,我希望获取区域为空的文档。为此,我开发了存储库方法

List<Customer> findByRegionNull();

数据库查询显示大写NULL而不是Null,现在db.customers.find({"区域":"null"});查询执行时我没有看到任何结果。我们如何编写存储库查询以获取NULL?

    db.customers.find({ "Region" :  "NULL" });
    {
        "_id" : ObjectId("51ba0970ae4ad8cc43bb95e3"),
        "CustomerID" : "ALFKI",
        "CompanyName" : "Alfreds Futterkiste",
        "ContactName" : "Maria Anders",
        "ContactTitle" : "Sales Representative",
        "Address" : "Obere Str. 57",
        "City" : "Berlin",
        "Region" : "NULL",
        "PostalCode" : 12209,
        "Country" : "Germany",
        "Phone" : "030-0074321",
        "Fax" : "030-0076545"
    }
    {
    "_id" : ObjectId("51ba0970ae4ad8cc43bb95e4"),
    "CustomerID" : "ANATR",
    "CompanyName" : "Ana Trujillo Emparedados y helados",
    "ContactName" : "Ana Trujillo",
    "ContactTitle" : "Owner",
    "Address" : "Avda. de la Constitución 2222",
    "City" : "México D.F.",
    "Region" : "NULL",
    "PostalCode" : 5021,
    "Country" : "Mexico",
    "Phone" : "(5) 555-4729",
    "Fax" : "(5) 555-3745"
}

我开发的代码:CustomerRepository。Java语言

   public interface CustomerRepository extends CrudRepository<Customer, String>{
        List<Customer> findByRegionNull();
    }

我的测试用例没有给出结果?

@Test
    public void testRegionNull(){
        List<Customer> customers =cService.findByRegionNull(); 
        LOGGER.debug("SIZE : "+customers.size());
    }

Customer.java

@Document(collection="customers")
public class Customer {
    @Id
    private ObjectId id;

    @Field("CustomerID")
    private String customerId;

    @Field("CompanyName")
    private String companyName;

    @Field("ContactName")
    private String contactName;

    @Field("ContactTitle")
    private String contactTitle;

    @Field("Address")
    private String address;

    @Field("City")
    private String city;

    @Field("Region")
    private String region;

    @Field("PostalCode")
    private String postalCode;

    @Field("Country")
    private String country;

    @Field("Phone")
    private String phone;

    @Field("Fax")
    private String fax;
    // setters and getters
}

共有1个答案

秦承安
2023-03-14

只需使用@Query注释方式。请参考6.3.2:http://docs.spring.io/spring-data/data-document/docs/current/reference/html/

使用此选项:

public interface CustomerRepository extends CrudRepository<Customer, String>{
    @Query("{ 'Region' : 'NULL' }")
    List<Customer> findByRegionNull();
}
 类似资料:
  • 我正试图用盖茨比创建一个博客。我遵循这个教程 https://www.gatsbyjs.org/docs/recipes/#optimizing-使用盖茨比图像查询后frontmatter中的图像 博客包含标题、特色图片和文本。 MDX文件结构如下所示。 并且,代码在文件gatsby节点中。像这样 在模板中,将使用此查询提取图像。 我的主要问题是在gatsby节点中编写GraphQL查询。js。我

  • 问题内容: 我想编写一条Postgres SQL语句,该语句表示查找颜色X和亮度Y的用户。如果该用户存在,则返回其所有行数据。如果不是,请创建新行并传递其他信息。这两个单独的语句将执行以下操作: 如果那什么都不返回,那么执行以下命令: 有没有一种方法可以将这些组合成一个查询? 问题答案: 在SQL DBMS中,select-test- insert方法是一个错误:没有什么可以阻止另一个进程在您的和

  • 问题内容: 在我的代码中,我正在使用。 然后,我执行该方法以填充准备好的语句的通配符。 在调用该方法并执行查询之前,我是否有办法检索(并打印出)最终查询?我只想将此用于调试目的。 问题答案: 这在JDBC API合同中没有定义,但是如果幸运的话,有问题的JDBC驱动程序可以通过调用来返回完整的SQL 。即 以我的经验,至少这样做是PostgreSQL 8.x和MySQL 5.x JDBC驱动程序。

  • 本文向大家介绍MongoDB查询以从文档中获取不同的FirstName值,包括了MongoDB查询以从文档中获取不同的FirstName值的使用技巧和注意事项,需要的朋友参考一下 对于不同的值,请使用。让我们创建一个包含文档的集合- 在方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是获取不同的FirstName值的查询- 这将产生以下输出-

  • 选择createdAt大于或等于“2021-08-15t00:00:00.000z”的记录 对于每个用户ID,只返回最新的记录,即按desc顺序按createdAt排序的记录。 返回的文档应该具有原始文档中的所有键。键的数量可能比文档中显示的要多得多。因此,查询应该自动返回所有键。 下面是所需的示例输出:

  • 问题内容: 我正在尝试连接到数据库,运行查询并打印出查询。到目前为止,我已经完成了工作,但是我需要获取输出并将其中的特定部分分配给 我正在使用log4jdbc监视我的查询。 此刻,我得到如下记录的输出: 我想分配给。我该怎么做呢? 问题答案: 通常,a 将为您提供查询(包括绑定参数)。但这取决于的实际实现(例如,使用PostgreSQL隐式实现)。 您提到为您带来回报。我对 log4jdbc 并不