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}}
])