Questão FC369627
Observe o resultado da execução dos seguintes comandos do MongoDB Shell. > use MPU2025 > switched to db MPU2025 > db.getCollectionNames(); < [ 'Processos' ] > db["Processos"].find(
Sistema de Gerenciamento de Banco de Dados (SGBD)
FGV · 2025
Observe o resultado da execução dos seguintes comandos do MongoDB Shell.
> use MPU2025
> switched to db MPU2025
> db.getCollectionNames();
< [ 'Processos' ]
> db["Processos"].find();
<{
_id: '676850ada9ec96543d3001c2',
processo_numero: '0001',
situacao: 'Ativo',
partes: {
autor: ['Maria'],
reu: [
'Pedro',
'Ivo"'
]
},
}
{
_id: '67685117a9ec96543d3001c5',
processo_numero: '0002',
partes: {
autor: ['Maria'],
reu: ['Joana']
},
}
Para listar apenas os processos que possuem dois réus, deve-se executar o comando:
- 'Processos'.filter(toArray({reu=2}));
- db.collection.count({"partes.reu",2});
- MPU2025.Processos.dataSize("partes.reu"$2);
- db["Processos"].find({"partes.reu":{$size:2}});
- db.Processos.countDocuments({"partes.reu":"2"});
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
db["Processos"].find({"partes.reu":{$size:2}}); busca na coleção documentos cujo campo "partes.reu" é um array com exatamente dois elementos.
O operador $size compara o tamanho do array, não seus valores. Assim, a expressão {"partes.reu":{$size:2}} seleciona somente documentos em que o número de réus é igual a 2.
O método find() retorna um cursor com os documentos que atendem à condição. No exemplo, o primeiro documento possui dois réus e será retornado; o segundo, com apenas um réu, será excluído do resultado.
Use essa forma quando a contagem exata de elementos for o critério; lembre-se de que $size exige que o campo seja um array válido para casar corretamente.
Conteúdo do catálogo FC Concursos · Atualizado em