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本机查询,您也可以直接使用本机查询(使用命名或索引参数)
这里对简化查询进行了解释:我在过去几天打开了本指南,我似乎总是滚动浏览示例。。。谢谢!不幸的是,有时很难在谷歌上搜索到华丽的相关问题,所以感谢您详细的回答!