繁体   English   中英

Quarkus Panache Mongodb 可能的查询

[英]Quarkus Panache Mongodb possible queries

在将 Quarkus 与Panache一起使用时,我感到非常沮丧,因为我想了解它的工作原理,但不能因为它对调试不友好。 有些东西在这里写得太抽象了,我希望在没有深入了解华丽、BSON 解析器、MongoDB 驱动程序、mongodb 等实现的情况下编写华丽的查询。

  1. 我可以在status in?1
  2. 如何调试查询? 有时我在类似查询中得到空结果,例如status in?1但不知道为什么
  3. 有人可以为常见的运算符提供示例,例如ANDORINEQUALSGREATER THAN ,...?
  4. 如何从代码中索引字段。

还有许多其他关于堆栈溢出的示例,因为我不知道如何编写和了解这些用法,所以我什至无法理解。 只是看起来不再简单了。 从一个月以来,我一直在尝试让我的应用程序在生产环境中工作,但总是在数据库级别上失败。 请帮助更多地了解panache。

使用带有 Panache 的 MongoDB,您可以在两个 styles 中编写查询:

  1. PanacheQL,它是 JPQL(JPA 的查询语言)的子集,是一种非常接近 SQL 查询的 WHERE 子句的查询语言。
  2. 原生 MongoDB 查询,为了方便 JSON 可以写成单引号而不是双引号。

最简单的当然是 PanacheQL,在使用原生 MongoDB 查询时,您可以使用 MongoDB 查询语言的全部功能(但您需要编写 JSON 查询)。

如果您使用的是 PanacheQL,您可以通过将 DEBUG 日志级别设置为记录器io.quarkus.mongodb.panache.runtime来检查生成的查询,如指南的查询调试中所述。

在指南上,有一些 PanacheQL 查询示例,如果您觉得应该添加更多,请打开一个增强请求,其中包含您想要添加的一些示例(甚至是 PR。)。

回答您有关查询的问题

我可以在状态中使用集合吗?1?

是的,这是支持的。

如何调试查询?

您可以启用查询日志记录,并直接在 MongoDB 上播放相同的查询(使用 mongo shell 或任何 MongoDB UI)。

有人可以为常见的运算符提供示例,如 AND、OR、IN、EQUALS、GREATER THAN、...?

简化查询部分有示例,我们提供了支持的运算符列表,其中包括 AND、OR(但不能同时使用)、IN、=、>=、<=、...所有的例子,但你可以找到很多 SQL WHERE 子句的例子。

这是一些样本(未经测试)

People.list("name = ?1 and country = ?2", "Doe", "France");
People.list("name = ?1 or country = ?2", "Doe", "France");
People.list("age >= ?1 or cage <= ?2", 10, 60);
People.list("country in ?1", List.of("France", "Germany"));

如何从代码中索引字段

如果您谈论自动 MongoDB 索引创建,则不支持。 然而,有增强请求来支持它,或者更普遍地支持 MongoDB 数据库迁移。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM