Visão geral
- Discutiremos cómo puede consultar una base de dadosUm banco de dados é um conjunto organizado de informações que permite armazenar, Gerencie e recupere dados com eficiência. Usado em várias aplicações, De sistemas corporativos a plataformas online, Os bancos de dados podem ser relacionais ou não relacionais. O design adequado é fundamental para otimizar o desempenho e garantir a integridade das informações, facilitando assim a tomada de decisão informada em diferentes contextos.... MongoDB usando la biblioteca PyMongo.
- Cobriremos as operações básicas de agregação no MongoDB.
Introdução
Acompanhando a expansão global da Internet, estamos gerando dados em uma taxa sem precedentes agora. Porque a realização de qualquer tipo de análise exigiria que coletássemos / vamos consultar os dados necessários do banco de dados, é extremamente importante que escolhamos a ferramenta certa para consultar os dados. Em consequência, não podemos imaginar o uso de SQL para trabalhar com este volume de dados, já que cada consulta será cara.
É precisamente aqui que entra o MongoDB. MongoDB é um banco de dados não estruturado que armazena dados na forma de documentos. O que mais, MongoDB puede manejar grandes volúmenes de datos de manera muy eficiente y es la base de datos NoSQLLas bases de datos NoSQL son sistemas de gestión de datos que se caracterizan por su flexibilidad y escalabilidad. A diferencia de las bases de datos relacionales, utilizan modelos de datos no estructurados, como documentos, clave-valor o gráficos. Son ideales para aplicaciones que requieren manejo de grandes volúmenes de información y alta disponibilidad, como en el caso de redes sociales o servicios en la nube. Su popularidad ha crecido en... más utilizada, pois oferece uma linguagem de consulta rica e acesso rápido e flexível aos dados.
Neste artigo, veremos vários exemplos de como consultar um banco de dados MongoDB usando PyMongo. O que mais, veremos cómo utilizar los operadores de comparaciónLos operadores de comparación son herramientas fundamentales en programación y matemáticas que permiten evaluar relaciones entre valores. Estos incluyen operadores como mayor que (>), menor que (<), igual a (==) y diferente de (!=). Su función principal es retornar un valor booleano, quer dizer, verdadeiro ou falso, facilitando la toma de decisiones en algoritmos y la manipulación de datos en estructuras de control como condicionales y bucles.... e os operadores lógicosLos operadores lógicos son símbolos o palabras clave que permiten combinar y evaluar expresiones booleanas en programación y matemáticas. Los más comunes son AND, OR y NOT. Estos operadores son fundamentales para el desarrollo de algoritmos y la toma de decisiones en sistemas informáticos, facilitando la ejecución de condiciones complejas. Su correcto uso optimiza el flujo de control y mejora la eficiencia en la resolución de problemas...., Noções básicas de expressão regular e pipelines de agregação.
Este artigo é uma continuação do MongoDB em Tutorial de Python para iniciantes, onde cobrimos os desafios de bancos de dados não estruturados, Operações básicas do MongoDB e etapas de instalação. Então, se você é um iniciante completo no MongoDB, Eu recomendo que você leia esse artigo primeiro.
Tabela de conteúdo
- O que é PyMongo?
- Etapas de instalação
- Insira os dados no banco de dados
- Consulte o banco de dados
- Filtro baseado em campo
- Filtrar com base em operadores de comparação
- Filtro baseado em operadores lógicos
- Expressões regulares
- Canais de agregação
- Notas finais
O que é PyMongo?
PyMongo é uma biblioteca Python que nos permite conectar com MongoDB. O que mais, esta é a maneira mais recomendada de trabalhar com MongoDB e Python.
O que mais, Escolhemos Python para interagir com MongoDB porque é uma das linguagens mais amplamente utilizadas e consideravelmente mais poderosas para Ciência de dados. O PyMongo nos permite recuperar os dados com uma sintaxe semelhante à de um dicionário.
Caso você seja um iniciante em Python, Vou recomendar que você se inscreva neste curso gratuito: Introdução ao Python.
Etapas de instalação
A instalação do PyMongo é simples e direta. Aqui, eu acho que você já tem python 3 e MongoDB instalado. O seguinte comando irá ajudá-lo a instalar o PyMongo:
pip3 install pymongo
Insira os dados no banco de dados
Agora vamos configurar as coisas antes de consultar um banco de dados MongoDB usando PyMongo. Primeiro vamos inserir os dados no banco de dados. As etapas a seguir irão ajudá-lo neste:
Importe as bibliotecas e conecte-se ao cliente mongo
Inicie o servidor MongoDB em sua máquina. Eu acho que um arquivo está sendo executado em localhost: 27017.
Vamos começar importando algumas das bibliotecas que vamos usar. Por padrão, o servidor mongodb é executado na porta 27017 da máquina local. Mais tarde, vamos nos conectar ao cliente MongoDB usando o Pymongo Biblioteca.
Mais tarde, obter a instância DB do banco de dados sample_db. Caso não exista., MongoDB criará um para você.
Crie coleções a partir de arquivos JSON
Usaremos dados de uma empresa de entrega de alimentos que opera em várias cidades. O que mais, eles têm vários centros de logística nessas cidades para enviar pedidos de alimentos aos seus clientes. Você pode baixar o dados e código aqui.
- demanda_semanal:
- EU IRIA: ID único para cada documento
- semana: Número da semana
- center_id: ID único para o centro de distribuição
- comida_id: ID único para comida
- checkout_price: Preço final com desconto, impostos e custos de envio
- preço base: Preço base da refeição
- emailer_for_promotion: Emailer enviado para promoção de comida
- homepage_featured: Comida em destaque na página inicial.
- num_orders: (Destino) Contagem de pedidos
- comida_info:
- comida_id: ID único para comida
- categoria: Tipo de alimento (bebidas / lanches / sopas ...)
- cozinha: Cozinha de comida (Índia / Italiano /…)
Em seguida, vamos criar duas coleções no banco de dados sample_db:
- demanda_semanal:
Inserir dados em coleções
Agora, los datos que tenemos están en formato JSONJSON, o Notação de objeto JavaScript, É um formato leve de troca de dados que é fácil para os humanos lerem e escreverem, e fácil para as máquinas analisarem e gerarem. É comumente usado em aplicativos da web para enviar e receber informações entre um servidor e um cliente. Sua estrutura é baseada em pares de valores-chave, tornando-o versátil e amplamente adotado no desenvolvimento de software... Em seguida, obteremos a instância da coleção, Vamos ler o arquivo de dados e inserir os dados usando o insert_many Função.
Finalmente, tenho 456548 documentos na coleta de demanda semanal e 51 documentos na coleção de informações alimentares. Agora, Vamos dar uma olhada em um documento de cada uma dessas coleções.
coleção_semanal
meal_info_collection
Agora, nossos dados estão prontos. Vamos consultar este banco de dados.
Consulte o banco de dados
Podemos consultar um banco de dados MongoDB usando PyMonfo com o achar função para obter todos os resultados que satisfaçam a condição dada e também usando o encontre um função que retornará apenas um resultado que satisfaça a condição.
A seguir está a sintaxe de find e find_one:
sua_coleção.find( {<< consulta >>} , { << Campos>>} )
Você pode consultar o banco de dados usando as seguintes técnicas de filtragem:
Filtro baseado em campo
Por exemplo, você tem centenas de campos e deseja ver apenas alguns deles. Você pode fazer isso simplesmente colocando todos os nomes de campo obrigatórios com o valor 1. Por exemplo:
Por outro lado, se você quiser descartar alguns campos apenas de todo o documento, você pode colocar os nomes dos campos iguais a 0. Portanto, apenas esses campos serão excluídos. Observe que você não pode usar uma combinação de 1 e 0 para obter os campos. Ou todos devem ser um ou todos devem ser zero.
Filtro com uma condição
Agora, nesta secção, iremos fornecer uma condição nas primeiras chaves e campos para descartar na segunda. Em consequência, irá devolver o primeiro documento com center_id igual a 55 e meal_id é igual a 1885 e também descartará os campos _id e semana.
Filtrar com base em operadores de comparação
A seguir estão os nove operadores de comparação no MongoDB.
NOME DESCRIÇÃO $eq
Irá corresponder valores que são iguais a um valor especificado. $gt
Irá corresponder valores que são maiores do que um valor especificado. $gte
Irá corresponder a todos os valores que são maiores ou iguais a um valor especificado. $in
Irá corresponder a qualquer um dos valores especificados em uma matriz. $lt
Irá corresponder a todos os valores que são menores do que um valor especificado. $lte
Irá corresponder a todos os valores que são menores ou iguais a um valor especificado. $ne
Irá corresponder a todos os valores que não são iguais a um valor especificado. $nin
Não corresponderá a nenhum dos valores especificados em uma matriz. A seguir estão alguns exemplos do uso desses operadores de comparação:
Igual a e diferente de
Encontraremos todos os documentos onde center_id é igual a 55 e homepage_featured não é igual a 0. Como vamos usar a função de pesquisa, irá devolver o cursor para aquele comando. O que mais, use um loop for para percorrer os resultados da consulta.
Na lista e não na lista
Por exemplo, deve corresponder a um elemento com vários elementos. Nesse caso, em vez de usar o operador $ eq várias vezes, podemos usar o operador $ no. Tentaremos encontrar todos os documentos onde center_id é 24 você 11.
Mais tarde, procuramos todos os documentos onde center_id não está presente na lista especificada. A consulta a seguir retornará todos os documentos onde center_id não é 24 e tampouco 11.
Menor que e Maior que
Agora, vamos encontrar todos os documentos onde center_id é 55 e checkout_price é maior que 100 e menos que 200. Use a seguinte sintaxe para isso-
Filtro baseado em operador lógico
NOME DESCRIÇÃO $and
Irá juntar as cláusulas de consulta com uma lógica. AND
e retorna todos os documentos que atendem às duas condições.$not
Isso reverterá o efeito de uma consulta e retornará documentos que não são não correspondência de expressão de consulta. $nor
Irá juntar as cláusulas de consulta com uma lógica. NOR
e devolver todos os documentos que não cumpram as cláusulas.$or
Irá juntar as cláusulas de consulta com uma lógica. OR
e devolver todos os documentos que atendam às condições de qualquer uma das cláusulas.Os exemplos a seguir ilustram o uso de operadores lógicos:
E operadora
A consulta a seguir retornará todos os documentos onde center_id é igual a 11 e também meal_id não é igual a 1778. As subconsultas para o e O operador irá inserir uma lista.
Operador OR
A consulta a seguir retornará todos os documentos onde center_id é igual a 11 o meal_id es 1207 o 2707. O que mais, as subconsultas para o o O operador irá inserir uma lista.
Filtro com expressões regulares
As expressões regulares são muito úteis quando você tem campos de texto e deseja pesquisar documentos com um padrão específico. Caso você queira aprender mais sobre expressões regulares, Eu recomendo que você leia este artigo: Tutorial para iniciantes para expressões regulares em Python.
Pode ser usado com operador. $ regex e podemos fornecer valor ao operador para que o padrão regex seja matc. Usaremos a coleção meal_info para esta consulta e, em seguida, encontraremos os documentos onde o campo da cozinha começa com o caractere C.
Vamos dar outro exemplo de expressões regulares. Vamos descobrir todos os documentos em que a categoria começa a partir do personagem. “S” e a cozinha termina com “Ian“.
Canais de agregação
O MongoDB Aggregation Pipeline fornece uma estrutura para realizar uma série de transformações de dados em um conjunto de dados. A seguir está sua sintaxe:
sua_coleção.agregar( [ { <estágio 1> }, { <estágio 2> },.. ] )
A primeira etapa leva o conjunto completo de documentos como entrada e, desde ali, cada estágio subsequente leva o conjunto de resultados da transformação anterior como entrada para o próximo estágio e produz a saída.
Existem cerca de 10 transformações disponíveis no agregado MongoDB, do qual veremos $ partida e $ grupo neste artigo. Discutiremos cada uma das transformações em detalhes no próximo artigo do MongoDB.
Por exemplo, Na primeira fase, vamos combinar os documentos onde center_id é igual a 11 e na próxima fase, contará o número de documentos com center_id igual a 11. Observe que atribuímos o $ contar operador igual valor total_rows na segunda etapa é o nome do campo que queremos na saída.
Agora, vamos dar outro exemplo em que o primeiro estágio é o mesmo de antes, quer dizer, center_id é igual a 11 e na segunda fase, queremos calcular a média do campo num_orders para o center_id 11 e os únicos meal_ids para o center_id 11.
Notas finais
A quantidade incomensurável de dados que hoje é gerada torna necessário encontrar alternativas melhores como esta para consultar os dados. Para resumir, neste artigo, aprendemos como consultar um banco de dados MongoDB usando PyMongo. O que mais, entendemos como aplicar vários filtros de acordo com a situação necessária.
Caso você queira mais informações sobre a consulta de dados, Eu recomendo o seguinte curso: Linguagem de consulta estruturada (SQL) para ciência de dados
No próximo artigo, vamos analisar pipelines de agregação em detalhes.
Eu encorajo você a experimentar as coisas por conta própria e compartilhar suas experiências na seção de comentários. O que mais, se você tiver um problema com qualquer um dos conceitos acima, sinta-se à vontade para me perguntar nos comentários abaixo.