Definição
$inRetorna um booleano indicando se um valor especificado está em uma matriz.
Observação
Este documento descreve o operador de agregação
$in. Para o operador de query$in, veja $in (operador de predicado de query).$intem a seguinte sintaxe de expressão do operador:{ $in: [ <expression>, <array expression> ] } OperandoDescrição<expression>Qualquer expressão válida expressão.
<array expression>Qualquer expressão válida que resolva para uma array.
Ao contrário do operador de query
$in, o operador$inde agregação não permite correspondência por expressões regulares.ExemploResultados{ $in: [ 2, [ 1, 2, 3 ] ] }true{ $in: [ "abc", [ "xyz", "abc" ] ] }true{ $in: [ "xy", [ "xyz", "abc" ] ] }false{ $in: [ [ "a" ], [ "a" ] ] }false{ $in: [ [ "a" ], [ [ "a" ] ] ] }true{ $in: [ /^a/, [ "a" ] ] }false{ $in: [ /^a/, [ /^a/ ] ] }true
Comportamento
$in falha com um erro em um dos seguintes casos: se a expressão $in não receber exatamente dois argumentos ou se o segundo argumento não for resolvido para uma array.
Exemplo
O exemplo a seguir usa a coleção movies do conjunto de dados de amostra sample_mflix. Para obter detalhes sobre como carregar esse conjunto de dados em sua implantação, consulte Carregar o conjunto de dados de amostra.
Esta operação de agregação analisa a array genres em cada filme e determina se a string "Drama" está presente:
db.movies.aggregate( [ { $match: { runtime: { $gt: 1000 } } }, { $project: { _id: 0, title: 1, hasDrama: { $in: [ "Drama", "$genres" ] } } } ] )
[ { title: 'Centennial', hasDrama: true }, { title: 'Baseball', hasDrama: false } ]