Mongodb只返回数组中匹配的元素

Mongodb只返回数组中匹配的元素,mongodb,mongodb-query,Mongodb,Mongodb Query,是否可以在包含附件的数组中仅返回匹配的元素 输入样本 [ { "values":[ "Aerial and fa ade cables Accessories", "LANmark 5 Shielded Cable", "Market challenges" ], "doc":"doc1" }, { "values":[ "Aerial and fa ade cables ", "Tools Accessories" ],

是否可以在包含
附件的数组中仅返回匹配的元素

输入样本

[
{
  "values":[
     "Aerial and fa ade cables Accessories",
     "LANmark 5 Shielded Cable",
     "Market challenges"
  ],
  "doc":"doc1"
},
{
  "values":[
     "Aerial and fa ade cables ",
     "Tools Accessories"
  ],
  "doc":"doc2"
}
]
预期产量

 "Aerial and fa ade cables Accessories",
 "Tools Accessories"

这段代码应该在这里起作用:
Mongo v4.2.3


$elemMatch
$regex
结合起来,查看有关@mohamed hamada的更多文档:查看我对答案的评论..你可以这样做,同样,当你的数据集很大时,你也不应该这样做-因此这肯定不是最好的答案,
$unwind
会在集合中爆炸文档,在您的情况下,您将处理5个文档,而不仅仅是2个文档,这使得查询运行缓慢&如果需要,您还需要一个
group
stage来合并文档-这会添加其他不必要的stage!!有很多关于类似主题的问题-请检查以下答案:
db.collection.aggregate([
   {$unwind: "$values"},
   {$match: { values: { $regex: /accessories/i } }},
   {$project:{values: 1, _id: 0}}
])