在使用$regexFindAll匹配到关键字后,可以使用$addFields将关键字提取成单独的列。$addFields将新字段添加到输出文档中,可以使用$map操作符将匹配到的关键字提取出来并赋值给新的字段。以下是一个示例:\n\njavascript\ndb.collection.aggregate([\n {\n $addFields: {\n matchedKeywords: {\n $map: {\n input: {\n $regexFindAll: {\n input: "$text", // 输入字段,根据具体情况修改\n regex: "关键字", // 正则表达式,根据具体情况修改\n options: "i" // 正则表达式选项,根据具体情况修改\n }\n },\n as: "keyword",\n in: "$$keyword.matched" // 新字段的值为匹配到的关键字\n }\n }\n }\n }\n])\n\n\n在上面的示例中,$regexFindAll操作符用于在输入字段($text)中匹配关键字("关键字")并返回匹配结果。$map操作符用于遍历匹配结果数组,并将每个匹配项的"matched"字段的值赋给新的字段(matchedKeywords)。\n\n请注意,上述示例中的正则表达式是一个简单的示例,请根据实际情况修改正则表达式以匹配您的关键字。另外,请根据您的实际集合名称和字段名称修改聚合管道中的集合和字段名称。


原文地址: https://www.cveoy.top/t/topic/p7wR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录