steps.step utvärderas till en array av strängar i det här fallet ["s1", "s2"] . Den vanliga $lookup stöder sådan jämförelse och gör $in bakom kulisserna.
I ditt andra exempel använder du $expr så du måste använda uttrycksspråk och därför måste du använda $in operatör:
$expr: { $in: ['$_id', '$$stepId'] }