带有正则表达式过滤器的MongoDB Java驱动程序聚合
我使用的是MongoDB Java驱动程序3.6.3。 我想使用GROUPBY聚合创建正则表达式查询,以检索不同的值
假设我有json:
[{
"name": "John Snow",
"category": 1
},
{
"name": "Jason Statham",
"category": 2
},
{
"name": "John Lennon",
"category": 2
},
{
"name": "John Snow",
"category": 3
}]
我想创建一个regex类似于“John.*”的查询,并按名称对其进行分组,这样就只有一个“John Snow”
预期结果是:
[{
"name": "John Snow",
"category": 1
},
{
"name": "John Lennon",
"category": 2
}]
# 1 楼答案
你可以使用
Spring Data Mongo
像这样
# 2 楼答案
就Mongo Shell命令而言,
felix
提供的answer是正确的。使用MongoDB Java驱动程序的该命令的等效表达式为:上述代码将打印出来:
# 3 楼答案
您可以通过在
$match
阶段中的$regex
实现这一点,然后是$group
阶段:输出:
你可以在这里试试:mongoplayground.net/p/evw6DP_574r