[英]Panache with MongoDB find distinct
我有帶有“標簽” arrays 作為屬性的文檔。 現在我想查詢所有不同的標簽項。
{
"name": "test1",
"tags": ["tag1","tag2", "tag3"]
},
{
"name": "test2",
"tags": ["tag1"]
}
mongo shell 中的解決方案:
db.ApiModel.distinct("tags")
這給了我:
["tag1", "tag2", "tag3"]
但是我怎樣才能用 Panache 達到同樣的效果呢? PanacheMongoEntity 不提供特定的不同方法。 我也不知道如何使用find
方法來實現我的目標,或者是否可以使用這種方法。
我所能想到的就是找到所有帶有find("tags", "*")
的標簽(是 * 通配符嗎?),然后處理 Java 中的重復項,但我不相信這是預期的用途。
您可以使用這兩種方法中的任何一種從集合test
中獲取不同的tags
。
public List<String> getDistinctTags() {
return Tags
.<Tags>mongoCollection()
.distinct("tags", String.class)
.into(new ArrayList<String>());
}
public List<String> getDistinctTags() {
return Tags
.<Tags>streamAll()
.flatMap(e -> e.tags.stream())
.distinct()
.collect(toList());
}
假設Tags
class 定義如下並代表 Panache 實體:
@MongoEntity(collection="test")
public class Tags extends PanacheMongoEntity {
public String name;
public List<String> tags;
// ...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.