我的应用程序中有多个数据源(mysql和mongodb),我分别使用jparepository(springdatajpa)和mongorepository(springdatamongo)。
下面的代码用于从vehicle表(mysql)获取所有imei编号
@Repository
public interface VehicleRepo extends JpaRepository<Vehicle, Long>{
@Query(value = "SELECT imei FROM vehicle", nativeQuery = true)
public List<Object[]> findImei();
}
我有另一个蒙哥回购如下。
@Repository
public interface DeviceRepo extends MongoRepository<Device, String>{
// looking for a method which returns all the distinct imei
}
我想知道mongodb中的查询是什么。
(我的要求是从设备中选择所有唯一不同的imei字段,并且只选择单个字段,如vehiclerepo)
我试过多种组合,但都不管用。
3条答案
按热度按时间js5cn81o1#
我无法使用@query找到任何解决方案,因此我必须使用mongotemplate来实现相同的功能。
mcdcgff02#
您也可以使用
mongoTemplate
在自定义存储库方法中,实现上述相同的响应(类似于alien的响应):最新spring数据mongo文档中的更多信息:https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongo-template.query.distinct文件
ssgvzors3#
可能有点晚了,但我正在做同样的事情:如果您的集合中只有一个string(datatype)字段,并且您只想获取该字段,那么可以尝试:
值mean查询和字段类型是您要获取/忽略的内容
在mongo db中,您可以查看此网站(https://docs.mongodb.com/manual/tutorial/project-fields-from-query-results/)
或stackoverflow中的答案(spring data mongo query字段参数)