/ Tecnologia / Integração do … / 5.1 Método …

5.1 Método find()

Consultas ao texto

MongoDB Compass - Banco de Dados reficio, coleção pages, documentos contendo a palavra Urca no título
MongoDB Compass - Banco de Dados reficio, coleção pages, documentos contendo a palavra Urca no título

O método find() do MongoDB seleciona documentos em uma coleção, ou visão, e retorna um cursor para os documentos selecionados. Sua sintaxe é:

db.coleção.find(consulta, projeção)

onde consulta especifica o filtro de seleção usando operadores de consulta, e projeção especifica quais campos do documento serão retornados.

Se os parâmetros forem omitidos, serão retornados todos os documentos com todos os seus campos. Se a consulta for especificada como um documento vazio ({}), serão retornados todos os documentos.

Exemplos de consulta utilizando a função find() na shell do MongoDB:
1. Exibir todos os documentos da coleção pages, de forma elegante
db.pages.find().pretty();
2. Exibir o título dos cinco primeiros documentos da coleção pages
> db.pages.find({}, {title: 1}).limit(5);
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd49c"), "title" : "COVID-19: Casos x Óbitos nos países com mais de 50.000 casos confirmados em 17/07/2020" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd49d"), "title" : "Início à 29ª Semana Epidemiológica – Regiões do Brasil" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd49e"), "title" : "A Regência de Dom Pedro — Pródromos da Independência" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd49f"), "title" : "Revolução Pernambucana de 1817, Vultos Principais" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd4a0"), "title" : "Início à 28ª Semana Epidemiológica – Região Sul" }
3. Exibir o título do quinto documento da coleção pages
> db.pages.find({}, {title: 1}).skip(4).limit(1);
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd4a0"), "title" : "Início à 28ª Semana Epidemiológica – Região Sul" }
4. Exibir o sumário (“excerpt”) de todos os documentos da coleção pages, contendo Avenida Central no título, de forma elegante
> db.pages.find( {title : "Avenida Central"}, {excerpt: 1} ).pretty();
{
	"_id" : ObjectId("5f69ecd4d3a133b7d4bdd5bd"),
	"excerpt" : "A AVENIDA Central foi construída pelo Governo Federal, sob a direção do engenheiro . A Municipalidade não podia meter ombros a tal iniciativa: rasgar uma Avenida de 1.800 metros através de 18 ruas apinhadas de habitações e estabelecimentos que, por estarem no centro comercial, representavam propriedades de imenso valor. Os trabalhos de abertura do novo …  Avenida Central Leia mais »"
}
{
	"_id" : ObjectId("5f69ecd4d3a133b7d4bdd797"),
	"excerpt" : "Região localizada no entorno da antiga Avenida Central, atual Avenida Rio Branco, da Praça Mauá até a Avenida Beira Mar, incluindo o Largo da Carioca, a Cinelândia e o Passeio Público, limitada a leste pela região da Praça XV de Novembro e a Oeste pela região do Campo da Cidade e a Lapa, conforme mostrado …  Avenida Central Leia mais »"
}
5. Exibir quantos documentos contém Canal do Mangue no título
> db.pages.find( {title : "Canal do Mangue" } ).count();
5
6. Exibir os títulos dos documentos que contém a palavra Açúcar
> db.pages.find( { title: { $regex: /Açúcar/ } }, { title: 1 } );
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd5b5"), "title" : "Primeiras Escaladas do Pão de Açúcar" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd675"), "title" : "Caminho Aéreo do Pão de Açúcar" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd678"), "title" : "O Pão de Açúcar" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd6c7"), "title" : "Pão de Açúcar" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd6fd"), "title" : "Caminho do Pão de Açúcar" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd74b"), "title" : "Morro da Urca e Pão de Açúcar" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd74e"), "title" : "Imagens da Praia Vermelha, Urca, Morro da Urca e Pão de Açúcar" }
7. Exibir os títulos dos documentos que começam pela palavra Praça
> db.pages.find( { title: { $regex: /^Praça/ } }, { title: 1 } )
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd611"), "title" : "Praça do Curro" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd642"), "title" : "Praça do Capim" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd6b8"), "title" : "Praça Tiradentes" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd6bc"), "title" : "Praça do Comércio" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd764"), "title" : "Praça da República" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd7a8"), "title" : "Praça XV de Novembro" }
8. Exibir os títulos dos documentos que terminam com a palavra Glória
> db.pages.find( { title: { $regex: /Glória$/ } }, { title: 1 } );
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd589"), "title" : "Rua Nossa Senhora da Glória" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd58e"), "title" : "Santuário de Nossa Senhora da Glória" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd597"), "title" : "A Glória" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd5be"), "title" : "Relógio da Glória" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd601"), "title" : "Nossa Senhora da Glória" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd6b3"), "title" : "Criação da Freguesia da Glória" }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd6ec"), "title" : "15 de agosto de 1823, Dia de Nossa Senhora da Glória" }
9. Exibir as páginas que têm a página Categorias como ancestral
> // Exibir o identificador (id) da página Categorias
> db.pages.find( { title : "Categorias" }, { id: 1} );
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd7a6"), "id" : 1459 }
> // Exibir os títulos das páginas filhas da página Categorias
> db.pages.find( { ancestors :  [1459] }, { title: 1, ancestors: 1} );
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd787"), "title" : "Geografia, Biografia e História", "ancestors" : [ 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd78f"), "title" : "Viagem", "ancestors" : [ 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd790"), "title" : "Geodésia", "ancestors" : [ 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd795"), "title" : "Governo", "ancestors" : [ 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd7ab"), "title" : "Economia", "ancestors" : [ 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd7af"), "title" : "Cidade", "ancestors" : [ 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd7b1"), "title" : "Educação e Cultura", "ancestors" : [ 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd7b2"), "title" : "Saúde e Assistência Social", "ancestors" : [ 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd7b3"), "title" : "Religião", "ancestors" : [ 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd7b7"), "title" : "Parques e Áreas Verdes", "ancestors" : [ 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd7b9"), "title" : "Transporte", "ancestors" : [ 1459 ] }
> // Exibir os títulos de todas as páginas que têm a página Categorias como ancestral
> db.pages.find( { ancestors : { $all: [1459] } }, { title: 1, ancestors: 1} );
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd566"), "title" : "Serviços Públicos", "ancestors" : [ 1299, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd654"), "title" : "Religiosos", "ancestors" : [ 1118, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd72f"), "title" : "Cemitérios", "ancestors" : [ 1118, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd733"), "title" : "Calendário Eclesiástico", "ancestors" : [ 1118, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd742"), "title" : "Largo da Carioca", "ancestors" : [ 1115, 1299, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd743"), "title" : "Influências, no Barroco, da Terra e da Gente Brasileira", "ancestors" : [ 5325, 1126, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd744"), "title" : "A Pseudo Degenerescência do Barroco", "ancestors" : [ 5325, 1126, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd746"), "title" : "Preliminar", "ancestors" : [ 5325, 1126, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd747"), "title" : "Influências de Além-Mar", "ancestors" : [ 5325, 1126, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd749"), "title" : "O Barroco no Brasil", "ancestors" : [ 1126, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd74b"), "title" : "Morro da Urca e Pão de Açúcar", "ancestors" : [ 3588, 1299, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd74c"), "title" : "O Barroco", "ancestors" : [ 5325, 1126, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd74d"), "title" : "Canal do Mangue", "ancestors" : [ 3588, 1299, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd750"), "title" : "A Causalidade e o Trânsito do Barroco", "ancestors" : [ 5325, 1126, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd751"), "title" : "Chafariz de Mestre Valentim", "ancestors" : [ 4930, 1299, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd753"), "title" : "Aqueduto da Carioca", "ancestors" : [ 4930, 1299, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd754"), "title" : "Chafariz de Grandjean de Montigny", "ancestors" : [ 4930, 1299, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd755"), "title" : "Chafariz da Praça São Salvador", "ancestors" : [ 4930, 1299, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd757"), "title" : "Aquedutos, Fontes e Chafarizes", "ancestors" : [ 1299, 1459 ] }
{ "_id" : ObjectId("5f69ecd4d3a133b7d4bdd758"), "title" : "Chafariz da Praça Quinze de Novembro", "ancestors" : [ 4930, 1299, 1459 ] }
Type "it" for more
10. Exibir os títulos das páginas filhas da página Categorias, usando o método forEach() no cursor retornado por find().
> db.pages.find(
...     { title : "Categorias" }
... ).forEach(
...     function(p) {
...         print( "id: " + p.id );
...         db.pages.find(
...             { "ancestors.0":  p.id }
...         ).forEach(
...             function(q) {
...                 print( "Título: " + q.title );
...             }
...         );
...     }
... );
id: 1459
Título: Geografia, Biografia e História
Título: Viagem
Título: Geodésia
Título: Governo
Título: Economia
Título: Cidade
Título: Educação e Cultura
Título: Saúde e Assistência Social
Título: Religião
Título: Parques e Áreas Verdes
Título: Transporte