簡體   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