FC ConcursosFC Concursos

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:

  1. 'Processos'.filter(toArray({reu=2}));
  2. db.collection.count({"partes.reu",2});
  3. MPU2025.Processos.dataSize("partes.reu"$2);
  4. db["Processos"].find({"partes.reu":{$size:2}});
  5. 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

Continue aprendendo