【问题标题】:MongoRepository Compared two column + Spring DataMongoRepository 比较了两列 + 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 。让我试试上面一个

标签: spring mongodb spring-boot spring-data-jpa 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 不支持这个。
猜你喜欢
  • 1970-01-01
  • 2014-10-30
  • 2012-03-21
  • 2019-03-17
  • 1970-01-01
  • 1970-01-01
  • 2013-06-05
  • 2021-08-27
  • 1970-01-01
相关资源
最近更新 更多