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

使用reactivemongodb查询mongodb集合SpringWebFlux

漆雕深
2023-03-14

我正在使用reactive mongodb开发简单的spring webflux演示应用程序,我想按姓名读取员工的所有数据,但不包括姓名字段“joe”、“Sara”、“joe”、“Sara”,我有如下代码:

//仓库接口

public interface EmployeeRepository extends ReactiveMongoRepository<Employee, String>{
 Flux<Employee> findAllByName(String name);
}

//服务类

public class EmplyeeService
{

private EmployeeRepository employeeRepository;

public Flux<Employee> findAllByOrganizationName(String name)
 {

        return employeeRepository.findAllByName(name);

    }

 public Flux<String> getAllNameExceptSome(String name)
{
     Employee emp1=new Employee();
     List<Flux<Employee>> emp=Arrays.asList(employeeRepository.findAllByName(name));
     Flux<Flux<Employee>> emp2=Flux.fromIterable(emp)
             .filter(name->name.equalsIgnoreCase("joe"));
     return emp2;
  }
}

共有1个答案

高英彦
2023-03-14

首先,除非出现某些特殊情况,否则应避免使用以下数据结构:

List<Flux<Employee>>
Flux<Flux<Employee>>

但是,您没有利用Spring数据。您只需将存储库更改为:

public interface EmployeeRepository extends ReactiveMongoRepository<Employee, String> {

   // this find all Employee except those matching names provided as param
   Flux<Employee> findAllByNameNotIn(List<String> nameList);

   // this find all Employee matching names provided as param
   Flux<Employee> findAllByNameIn(List<String> nameList);
}

调用此方法,您将获得已按名称筛选的员工列表。

 类似资料:
  • 我有一个名为“Prices”的MongoDB集合,我试图查询“startDate”和“endDate”之间的价格。 该集合每10秒存储一次价格,但是当查询此集合以绘制图形时,每1-2分钟的价格才是真正重要的。 我尝试用两种不同的方式编写此查询: 方法1:使用{$gte:startDate,$lte:endDate} 此方法引发以下错误: 如果删除排序('-timestamp')行,并再次运行此查询

  • 我使用Nodejs和MongoDB与expressjs和mongoose库,创建一个具有用户、文章和评论模式的博客API。下面是我使用的模式。

  • 主要内容:aggregate() 方法,管道MongoDB 中的聚合操作用来处理数据并返回计算结果,聚合操作可以将多个文档中的值组合在一起,并可对数据执行各种操作,以返回单个结果,有点类似于 SQL 语句中的 count(*)、group by 等。 aggregate() 方法 您可以使用 MongoDB 中的 aggregate() 方法来执行聚合操作,其语法格式如下: db.collection_name.aggregate(aggr

  • 我有一个画廊的以下文件(Json), 现在我还有一个颜色集合,比如colors-collection:[“黑色”、“黄色”、“红色”、“绿色”、“蓝色”、“粉色”] 我想通过与提供的文本匹配的名称获取绘画,比如“蒙娜丽莎”(作为搜索查询),我还想将两种颜色与colors-collection进行比较,如果colors-collection中有任何匹配的颜色,那么它应该返回绘画<我想要下面这样的东西

  • 假设我有一个MongoDB集合,其中包含以下信息: 我想计算按州分组的订单总价的总和,其中项目为“苹果”,颜色为“红色”。我的问题是: 但是,我希望能够将我的结果cust\u id包含在\u id中,它是一个数组/映射/一些结构,其中包含构成我的合计的所有客户id的列表。因此,我希望我的输出包含 是否有办法处理此mongo聚合/查询?或者是一种更好的方式来构造此查询,以便我可以按州分组计算红苹果的

  • 如何查询包含至少一个搜索条件元素的? 给定这个对应的数据库模式 对于此实体类 我想在数据库中查询有产品列表的公司。在SQL中我可以做 等效的HQL/JPQL查询是什么样子的? 我找到了Hibernate的集合相关表达式和限定路径表达式,但是我无法创建一个有效的查询。 > 作为命名参数 org . spring framework . Dao . invaliddataaccessapiusagee