返回mongodb中包含满足条件的数组的完整文档



我真的陷入了这个问题,尝试了所有使用聚合和投影的方法,但还没有成功,请帮我找出一些最佳方法,

这就是我的文档看起来像的样子

{
engagement: {
loves: [ 5e87a316457e874ce886356c,5e87a316457e874ce886356d, 5e87a316457e874ce886356e, 5e87a316457e874ce886356f],
loveCount: 4,
},
_id: 5e87c097c9374e6628a499b
}

现在我想提供一个loves数组的元素,并在此基础上生成以下结果

元件:5e87a316457e874ce886356d

结果

{
engagement: {
loves: [ 5e87a316457e874ce886356d],
loveCount: 4,
},
_id: 5e87c097c9374e6628a499b
}

元件:XYZABC

结果

{
engagement: {
loves: [],
loveCount: 4,
},
_id: 5e87c097c9374e6628a499b
}

您需要$filter:

db.collection.aggregate([
{
$addFields: {
"engagement.loves": {
$filter: {
input: "$engagement.loves",
cond: {
$eq: [ "$$this", "5e87a316457e874ce886356d" ]
}
}
}
}
}
])

Mongo游乐场

最新更新