有没有办法在聚合过程中删除字段?我得到了如下结果:
{
"firstName":"Patient1",
"lastName":"last",
"addresses":[
{
"street1":"1011 Happy Lane",
"street2":"Apt 1",
},
],
"phone":"11111111"
}
我正在尝试从结果中排除“地址”:
{
"firstName":"Patient1",
"lastName":"last",
"phone":"11111111"
}
我发现$unset,但似乎只在更新工作。
我也不想手动“分组”其他项目,因为我需要返回所有东西,除了我想排除的属性。选择性添加似乎在聚合中非常容易,但选择性删除似乎有点复杂。感谢这里的任何想法。
1条答案
按热度按时间wgmfuz8q1#
在管道中使用
$project
阶段。使用投影时有两种选择。第一种方法是,通过指定要包含的字段(值为
1
),可以将返回的字段列入白名单。第二种方法是通过指定不希望包含的字段,并将其值设为
0
,将返回的字段列入黑名单。这两种方法都有各自的优点,应该使用哪一种主要取决于您的用例。一个好的经验法则是,如果您只需要某些字段,并且不想在添加新字段时修改投影阶段,则应该使用白名单方法,但如果您只想排除某些字段,同时允许任何新字段包含在结果中,则应该使用黑名单方法。