MongoRepository 比较了两列 + Spring Data

Posted

技术标签:

【中文标题】MongoRepository 比较了两列 + Spring Data【英文标题】:MongoRepository Compared two column + Spring Data 【发布时间】:2017-10-24 06:54:47 【问题描述】:

我想使用 mongorepository + spring 数据(HQL 或标准查询)执行比较两列值的查询。我正在向您展示关系查询,我想转换为 mongo。

Select * from Employee em where em.limit

我想使用 Spring 数据将上述查询转换为 HQL 查询。

【问题讨论】:

你不能在 Spring Data MongoDB 中使用 HQL,因为你没有在 MongoDB 中使用 Hibernate... @davioooh:我正在使用带有 mongo 的 spring 数据(jpa 存储库),所以我可以使用,即使我正在使用它。问题是我想在 mongo 查询中使用相同的形式。供参考spring.io/guides/gs/accessing-data-mongodb 你是使用 JpaRepository 作为 CrudRepository 和 Mongo 还是 MongoRepository 您可以尝试Query query = new Query(); 这里查询来自org.springframework.data.mongodb.repository 包,然后您可以编写条件查询,如query.addCriteria(Criteria.where("this.limit > this.age"); 最后,mongoOperation.find(query, Employee.class);。希望这会有所帮助! 我正在使用 MongoRepository 。让我试试上面一个 【参考方案1】:

您可以使用$where 来实现:

db.employee.find(  $where: "this. limit < this. age"  );

在此处查看文档:

https://docs.mongodb.com/manual/reference/operator/query/where/

【讨论】:

这是原生查询。我想要 HQL 表单,因为我在 Mongo + jpa 中使用 Spring 数据。 spring.io/guides/gs/accessing-data-mongodb @BhargavPatel 然后用mongoTemplate 查询它,spring 不支持这个。

以上是关于MongoRepository 比较了两列 + Spring Data的主要内容,如果未能解决你的问题,请参考以下文章

WPS两列数据对比进行标记

Spring MongoRepository,在哪里捕获异常?

MongoRepository怎么修改数据

如何使用 MongoRepository 接口更新 mongo db 中的特定字段?

MongoRepository 动态查询

MongoRepository 在数组中查找列表