$in (Em Array)
Última atualização: 2026-10-09
$in (Em Array)
$in seleciona documentos onde o valor do campo é igual a qualquer valor de um array fornecido — um atalho conveniente para $or. `{ age: { $in: [18, 21, 30] } }` corresponde a documentos onde age é 18, 21 ou 30. É mais amigável a índices do que múltiplos $eq ou $or, e possui semânticas especiais para campos de array.
| Categoria | Comparação |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ <campo>: { $in: [ <valor1>, <valor2>, ... ] } }
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $in: corresponde a age 18, 21 ou 30
db.users.find({ age: { $in: [18, 21, 30] } })
Saída:
// Retorna documentos cujo age é qualquer um dos valores listados
📌 Notas
- Um array vazio $in: [] não corresponde a nada
- Em campos de array, corresponde se qualquer elemento atingir (como $elemMatch)
- Expressões regulares são permitidas dentro de $in (mas não em $nin)
🏷️ Tags Relacionados
💡 Casos Relacionados
Prática: CRUD para um sistema de comentários de blog
$lookup e associações com múltiplos conjuntos
Padrões avançados do Mongoose: desempenho e flexibilidade
Noções básicas sobre consultas a documentos: o método `find` e as projeções
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQual é mais rápido: $in ou $or?
A$in é mais rápido. Em um único campo ele faz uma consulta de índice, enquanto $or mescla vários ramos de índice; $in também aceita expressões regulares.
Q$in é equivalente a $or com vários $eq?
AFuncionalmente equivalente, mas $in é mais conciso e tem melhor desempenho com uma única varredura de índice. Ele também aceita operandos $type ou regex para correspondências de forma mista.
QComo $in funciona em campos de array?
AEle corresponde se qualquer elemento do array for igual a qualquer valor da lista $in, igual a $elemMatch com $in, porém mais conciso.