有没有办法在 $filter (聚合)中使用正则表达式而不是字符串数组

is there a way to use regex over string array within $filter (aggregation)

目前正在使用这个 .find({"strings": {"$elemMatch": {"$in": [/test/si]}}}) 在 "strings" 数组中查找字符串。现在我还需要搜索这个字符串 HERE

.aggregate([
{
    $match: {"_id" : ObjectId("5c5c59c689c4cf027b382999")  }
},
{ $project: {      
    data: {
        $filter: {
            input: '$data',
            as: 'item',
            cond: {

---------------------------------这里

                }
            }
        }
    }}
])

我已经尝试了很多类似的事情,例如:

.aggregate([ {
             $match:
            {"_id" : ObjectId("5c5c59c689c4cf027b382999")  }
          },
            { $project: {      
                data: {
                    $filter: {
                        input: '$data',
                        as: 'item',
                        cond: { $in: [/test/si, "$$item.strings"] }
                    }
               }
            }}
        ])

我目前想不出有什么办法可以做到这一点。 在 3.6 版本中有什么方法可以做到这一点吗?

如果您能以任何方式提供帮助:谢谢

问候H.M.

我做了一个解决方法:

"$filter": {
                    "input": "$data",
                    "as":    "item",
                    "cond": {
                        "$lt": {-1, {"$indexOfBytes": ["$$item.searchString", "text"]}}}
           }

但是如果没有正则表达式,这真的很糟糕,我无法匹配 string[]