Me pregunto si evaluará el padre dentro de la declaración '$ o' o el uno (clave/valor), ¿qué tiene prioridad o cuál es el comportamiento esperado y por qué?
db.collection.find({ parent: '2kzW57uhwthPFNyB9', access: null, '$or': [ { owner: 'PBjjLpK9fQi4qyTd4' }, { parent: { $in: ['2kzW57uhwthPFNyB9', '6we357uhwthPFwerr'] } } ] }){ parent: '2kzW57uhwthPFNyB9',//condition1 access: null,//condition2 '$or': [ { owner: 'PBjjLpK9fQi4qyTd4'//condition 3.0 }, { parent: {//condition 3.1 $in: [ '2kzW57uhwthPFNyB9', '6we357uhwthPFwerr' ] } } ] } Es una condición cuando and condiciones separadas por comas en find.
Tienes 4 condiciones como mencioné anteriormente.
Funciona como condition1 AND condition 2 AND (condition 3.0 OR condition 3.1)
Así que sin precedencia.