我使用MongoDB v 4.2.17,其中有一组文档,如下所示:
[
{
a: 'a',
b: 'b',
c: ['apples', 'grapes']
},
{
a: 'a',
b: 'b',
c: ['elephants', 'apes']
}
]
我需要编写一个将返回所有文档的查询,其中数组 c
的任何元素都与提供的正则表达式匹配。
我有一个与数组中的第一个元素匹配的解决方案:
"apes'} }}])代码"
此查询成功匹配数组中第一个元素与正则表达式匹配的文档。
我需要编写一个聚合来获取数组中任何元素匹配正则表达式的文档。
我试过了(没用)
db.collection.aggregate([{$match: {'c.$': {$regex: 'apes'} }}])
我需要使用正则表达式
和聚合,因此简单的查找
不起作用。提前谢谢。
只需使用值c
,而不是c.0
或c.$
。
db.collection.aggregate([
{
$match: {
"c": {
$regex: "apes"
}
}
}
])
检查此示例