Olá, Leandro, tudo bem?
Quando utilizamos o método deleteOne ou updateOne no MongoDB e a condição no filtro retorna mais de um registro, o banco de dados executará a linha de comando normalmente, sem dar nenhuma mensagem de erro. No entanto, apenas o primeiro documento que corresponder à condição será excluído ou atualizado.
Por exemplo, se tivermos uma coleção de filmes e quisermos excluir todos os filmes com a classificação "8.1", podemos usar o método deleteOne com a seguinte linha de comando:
db.filmes.deleteOne({"classificação": 8.1})
Nesse caso, apenas o primeiro filme com a classificação "8.1" será excluído. Se houver mais filmes com essa classificação, eles não serão afetados.
Quanto à possibilidade de passar condições combinadas na linha de comando, como combinar o operador $or com o operador $and, é possível sim. Por exemplo, se quisermos buscar os filmes do gênero comedia ou gênero romance e filmes com a classificação "8.1" ou classificação "9.0", podemos usar a seguinte linha de comando:
db.filmes.find( {
$and: [
{ $or: [ {"genero": "comedia"},{"genero": "romance"}] },
{ $or: [ {"classificação": 8.1}, {"classificação": 9.0} ] }
]
} )
Dessa forma, apenas filmes que correspondem a essas condições serão retornados.
Espero ter ajudado e bons estudos!