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

用于返回特定文档属性列表的springdata mongo存储库方法

洪凯定
2023-03-14

使用spring data for mongodb,如何指定存储库方法的返回类型以包含文档中的特定属性?前任:

@Document (collection = "foo")
class Foo {
   String id
   String name
   ... many more attributes
}

存储库:

interface FooRepository extends MongoRepository<Foo, String> {
   @Query { value = "{}", fields = "{'name' : 1}" }
   List<String> findAllNames()
}

上面的findAllNames按预期工作,只从文档中获取name属性。然而,spring数据返回的对象是Foo对象的字符串表示,该对象具有id和name属性,值和其余属性为null。我需要获取列表,而不是Foo对象

共有1个答案

融建树
2023-03-14

到目前为止,我使用了一个自定义接口来实现这一点。将findAllNames()方法从Spring数据存储库接口移动到我的自定义接口

interface FooRepositoryCustom {
    List<String> findAllNames()
}
interface FooRepository extends MongoRepository<Foo, String>, FooRepositoryCustom {
}

@Component
class FooRepositoryImpl implements FooRepositoryCustom {
   @Autowired
   MongoOperations mongoOperations;

  List<String> findAllNames() {
    //using mongoOperations create the query and execute. Return the property values from document
 }
}
 类似资料:
  • 我试图获取一个列表从数据库和findAll()返回空列表。我有多个jpa存储库,但只有一个不工作。这是代码: 这就是实体: 当我调用product类别epository.findAll()时,它返回空列表,因此我在数据库中有许多条目。谢谢你的帮助!

  • 使用mongoose,我希望搜索具有特定属性的子文档并返回最近的一个。 给定一个特定的用户,我想搜索他们的s,查找他们的

  • 我使用Apache IO FTPSClient在FTPS服务器上放置文档时遇到问题。我能够连接到服务器。我的状态很好(返回211)。如果我要求一个目录列表,我得到空。 我没有看到任何错误。我可以通过FileZilla连接到服务器。它在TLS上使用显式FTP。 感谢任何帮助。

  • 问题内容: 我正在尝试检索过去一年的文档,每个文档都放入1个月宽的存储桶中。我将为每个1个月的存储时段提取文档,然后进一步分析它们(超出我的问题范围)。从描述中看来,“桶聚合”似乎是可行的方法,但是在“桶”响应中,我仅获得每个桶中的文档计数,而不是原始文档本身。我想念什么? GET命令 结果输出 问题答案: 您快到了,您只需要添加一个子聚合即可为每个存储桶检索一些文档:

  • 在我的Spring Boot应用程序(基于JHipster 4)中,我试图使用属性表达式根据Spring文档中描述的相关实体的属性来过滤我的查询:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-方法。查询属性表达式 我想得到所有的约会,在他们的约会计划中有一个特定的雇员帐户

  • 问题内容: 我有这个电话: 我在哪里指定要返回的属性?在文档中找不到它。以上返回整个对象。我只希望返回一些属性。 这是我的架构: 我不想在我的休息电话中包含项目数组。 问题答案: 您使用投影。猫鼬查询文档中的第一个示例具有投影操作。 注意:不是真正的代码b / c,我用三颗星突出显示了重要的部分 该方案没有规定,但我认为例子是再清楚不过。