steps.step évalue à un tableau de chaînes dans ce cas ["s1", "s2"] . Le $lookup normal prend en charge une telle comparaison et fait $in Dans les coulisses.
Dans votre deuxième exemple, vous utilisez $expr vous devez donc utiliser un langage d'expression, vous devez donc utiliser $in opérateur :
$expr: { $in: ['$_id', '$$stepId'] }