Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Menu Docs
Página inicial do Docs
/ /

$in (operador de predicado de query)

$in

O operador $in seleciona os documentos onde o valor de um campo é igual a qualquer valor na array especificada.

Você pode utilizar o $in para implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

O operador $in tem o seguinte formato:

{ field: { $in: [ <value1>, <value2>, ... <valueN> ] } }

Para comparação de diferentes valores dos tipos de BSON, consulte a ordem de comparação de BSON especificada.

Se field tiver uma array, o operador $in seleciona os documentos cujo field tem uma array que contém pelo menos um elemento que corresponde a um valor na array especificada. Por exemplo, <value1>, <value2> e assim por diante.

$in compara cada parâmetro a cada documento na collection, o que pode causar problemas de desempenho. Para melhorar o desempenho, crie um índice no field que você deseja fazer uma query. Um índice permite que o MongoDB crie limites para cada elemento $in e pesquise com mais eficiência.

Observação

Este documento descreve o $in operador de query. Para o $in operador de agregação, consulte $in ( operador de expressão ).

Para dados armazenados no MongoDB Atlas, você pode usar o operador MongoDB Search in Operator ao executar queries.$search Executar $in após tem menos $search $search desempenho do que executar com o operador In Operator.

Para saber mais sobre a versão do MongoDB Search desse operador, consulte o operador In Operator na documentação do Atlas.

Os exemplos nesta página usam dados do conjunto de dados de amostra sample_mflix. Para obter detalhes sobre como carregar esse conjunto de dados em sua implantação autogerenciada do MongoDB , consulte Carregar o conjunto de dados de amostra. Se você fez modificações nos bancos de dados de amostra, talvez seja necessário descartar e recriar os bancos de dados para executar os exemplos nesta página.

Esta query seleciona documentos na coleção movies em que o valor do campo rated é "G" ou "TV-G":

db.movies.find(
{ rated: { $in: ["G", "TV-G"] } },
{ _id: 0, title: 1 }
)
[
{ title: 'The Great Train Robbery' },
{ title: 'A Corner in Wheat' },
{ title: 'From Hand to Mouth' },
{ title: 'One Week' },
{ title: 'The Devil to Pay!' },
{ title: 'Footlight Parade' },
{ title: 'Gold Diggers of 1935' },
{ title: 'Naughty Marietta' },
{ title: 'Modern Times' },
{ title: 'Gone with the Wind' },
{ title: 'Fantasia' },
{ title: 'The Man Who Came to Dinner' },
{ title: 'National Velvet' },
{ title: 'Alice in Wonderland' },
{ title: 'The Member of the Wedding' },
{ title: 'Seven Brides for Seven Brothers' },
{ title: 'Around the World in Eighty Days' },
{ title: 'The King and I' },
{ title: 'A King in New York' },
{ title: 'Ben-Hur' }
]

Embora você possa escrever a query utilizando o operador, utilize $or o $in operador ao invés do $or operador ao executar verificações de igualdade no mesmo campo.

A operação updateMany() a seguir define o campo familyFriendly como true quando a array rated tiver pelo menos um elemento que corresponda a "G" ou "TV-G":

db.movies.updateMany(
{ rated: { $in: ["G", "TV-G"] } },
{ $set: { familyFriendly: true } }
)
{
acknowledged: true,
insertedId: null,
matchedCount: 536,
modifiedCount: 536,
upsertedCount: 0
}

Para obter exemplos adicionais sobre como consultar arrays, consulte:

Para obter exemplos adicionais sobre queries, consulte Fazer query em documentos

O operador $in pode selecionar documentos utilizando expressões regulares do formato /pattern/.

Esta query seleciona documentos na collection movies onde o campo plot começa com Alien ou contém sci-fi:

db.movies.find(
{ plot: { $in: [ /^Alien/ , /sci-fi/ ] } },
{ _id: 0, title: 1, plot: 1 }
)
[
{
plot: 'Aliens come to Earth seeking scientists to help them in their war.',
title: 'This Island Earth'
},
{
plot: 'Censored by the Polish authorities, this film was reedited and new footage added. It begins with a sci-fi motif: abstract images and electronic music take the viewer from ruins of Lebanon ...',
title: 'Rece do gèry'
},
{
plot: 'An idyllic sci-fi future has one major drawback: life must end at 30.',
title: "Logan's Run"
},
{
plot: "Four horror/sci-fi segments directed by four famous directors which are their own versions of classic stories from Rod Serling's landmark television series.",
title: 'Twilight Zone: The Movie'
},
{
plot: 'Aliens who look like clowns come from outer space and terrorize a small town.',
title: 'Killer Klowns from Outer Space'
},
...
]

Voltar

$gte

Nesta página