问题描述
聚合管道中的一个阶段产生以下集合:
{
_id : {
airport : "SGF",minEffect : "security_delay",delayType : "arr_delay",}
}
{
_id : {
airport : "MIA",minEffect : "weather_delay",delayType : "weather_delay",}
}
{
...
}
我想减少集合中的文档,只获取minEffect
的值等于delayed Type
的值的文件。
为什么以下代码不起作用?
{$match:{"_id.delayType":"$_id.minEffect"}}
对于上面的示例,预期结果需要如下:
{
_id : {
airport : "MIA",}
}
{
...
}
解决方法
您可以按照以下方式使用。
{
$match: {
$expr: {
$eq: [
"$_id.minEffect","$_id.delayType"
]
}
}
}