Mongodb 带通配符的PanacheMongo查找

Mongodb 带通配符的PanacheMongo查找,mongodb,wildcard,quarkus,quarkus-panache,Mongodb,Wildcard,Quarkus,Quarkus Panache,我试图用华丽的方式执行一个简单的查找,但我被通配符操作符卡住了 我有: Model.find("payload.tags.name = ?1", "tag-to") .stream() .map(m -> (Model) m) .collect(Collectors.toList()); 我的文档如下所示: { ... payload:Object{ swagger:"2.0" info:

我试图用华丽的方式执行一个简单的
查找
,但我被通配符操作符卡住了

我有:

Model.find("payload.tags.name = ?1", "tag-to")
    .stream()
    .map(m -> (Model) m)
    .collect(Collectors.toList());
我的文档如下所示:

{
...
payload:Object{
    swagger:"2.0"
    info:Object
    host:"petstore.swagger.io"
    basePath:"/v2"
    tags:Array[
        0:Object [
            name:"tag-to-find"
            description:"a tag i want to find"
        ]
    ]

}
}

当我尝试查找“tagtofind”时,它是有效的,但我不知道如何使用通配符。在mongoshell中,我只需使用
db.Model.find({“payload.tags.name”:/ag to-/})
就可以了。

在mongoshell中使用的是JavaScript正则表达式。 您还应该能够将它与MongoDB一起使用,并具有华丽的外观

您通常应该将正则表达式与
$regex
操作符一起使用,但不确定Mongo shell如何处理它,但以下操作应该有效:

Model.list("payload.tags.name like ?1", "/tag-to/")
我使用
.list()
而不是
find()
,因为它直接返回文档列表

这里使用的查询称为PanacheQL查询,它将映射到MongoDB本机查询,您也可以直接使用本机查询(使用命名或索引参数)


这里对简化查询进行了解释:

我在过去几天打开了本指南,我似乎总是滚动浏览示例。。。谢谢!不幸的是,有时很难在谷歌上搜索到华丽的相关问题,所以感谢您详细的回答!