从所有 mongodb 个文档中获取结果
Get result from all mongodb documents
我有一个文件
[
{
"contentId": "62738f2fba6155003dd1e25d",
"tags": [
"spring boot",
"spring jpa"
]
},
{
"contentId": "62738f98ba6155003dd1e25e",
"tags": [
"spring",
"java"
]
}
]
我需要在 spring jpa 中编写一个 @Query 表达式,以获得带有与正则表达式 '.spr.' 匹配的标签的结果。因此,预期结果将是一组所有匹配的标签。
[spring, spring 开机, spring jpa]
我试过这样写
@Query(value = "{tags : { '$regex' : ?0 , $options: 'i'}}", fields = "{tags : 1,_id : 0}")
Set<String> findByTags(String tag);
但这给了我所有匹配的标签文档。
请帮我获取一组匹配的文本。
您可以使用聚合框架中的 $filter 来仅获取匹配的数组元素。
db.collection.aggregate([
{
$project: {
d: {
$filter: {
input: "$tags",
as: "num",
cond: {
$regexMatch: {
input: "$$num",
regex: ".*spr.*"
}
}
}
}
}
}
])
我有一个文件
[
{
"contentId": "62738f2fba6155003dd1e25d",
"tags": [
"spring boot",
"spring jpa"
]
},
{
"contentId": "62738f98ba6155003dd1e25e",
"tags": [
"spring",
"java"
]
}
]
我需要在 spring jpa 中编写一个 @Query 表达式,以获得带有与正则表达式 '.spr.' 匹配的标签的结果。因此,预期结果将是一组所有匹配的标签。
[spring, spring 开机, spring jpa]
我试过这样写
@Query(value = "{tags : { '$regex' : ?0 , $options: 'i'}}", fields = "{tags : 1,_id : 0}")
Set<String> findByTags(String tag);
但这给了我所有匹配的标签文档。
请帮我获取一组匹配的文本。
您可以使用聚合框架中的 $filter 来仅获取匹配的数组元素。
db.collection.aggregate([
{
$project: {
d: {
$filter: {
input: "$tags",
as: "num",
cond: {
$regexMatch: {
input: "$$num",
regex: ".*spr.*"
}
}
}
}
}
}
])