【发布时间】:2022-01-18 22:55:32
【问题描述】:
我使用 MongoDB v 4.2.17,其中有一组文档,例如:
[
{
a: 'a',
b: 'b',
c: ['apples', 'grapes']
},
{
a: 'a',
b: 'b',
c: ['elephants', 'apes']
}
]
我需要编写一个查询来返回所有文档,其中数组c 的任何元素都与提供的正则表达式匹配。
我有一个匹配数组中第一个元素的解决方案:
db.collection.aggregate([{$match: {'c.0': {$regex: 'apes'} }}])
此查询成功匹配数组中第一个元素与正则表达式匹配的文档。
我需要编写一个 聚合 来获取数组中 任何元素 与正则表达式匹配的文档。
我试过了(没用)
db.collection.aggregate([{$match: {'c.$': {$regex: 'apes'} }}])
我需要使用regex 和聚合,所以简单的find 将不起作用。
提前致谢。
【问题讨论】: