$or (OU Lógico)
Última atualização: 2026-10-09
$or (OU Lógico)
$or combina predicados de consulta; um documento corresponde se satisfizer qualquer um deles. `{ $or: [ { price: { $lt: 5 } }, { sale: true } ] }`. O MongoDB pode usar um índice por cláusula e mesclar os resultados. Para muitos valores em um único campo prefira $in; use $or para lógica de qualquer-um entre campos diferentes.
| Categoria | Lógica |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $or: [ { <condição1> }, { <condição2> }, ... ] }
⚙️ Parâmetros
| array de condições | Uma matriz de predicados de consulta; qualquer um deles basta. |
|---|
Retorno:Cursor dos documentos correspondentes
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $or: price abaixo de 5 ou em promoção
db.products.find({
$or: [
{ price: { $lt: 5 } },
{ sale: true }
]
})
Saída:
// Retorna produtos que correspondem a qualquer condição (ambas contam uma vez)
📌 Notas
- Prefira $in em vez de $or para muitos valores de um único campo
- $or aninha com outros operadores lógicos; cuidado com a estrutura junto de $and
- Cada cláusula pode usar um índice e os resultados são mesclados; a varredura completa é o plano alternativo
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQual é a diferença entre $or e $in?
A$in testa muitos valores em um único campo; $or combina campos diferentes. Muitos valores no mesmo campo: use $in.
Q$or retorna duplicatas quando várias condições correspondem?
ANão. Um documento é retornado no máximo uma vez, mesmo que várias condições correspondam.
Q$or pode aninhar $and?
ASim, cada elemento de $or pode ser ele próprio $and, $nor, etc.