Aprenda programação de banco de dados python (6) do zero comigo: banco de dados MongoDB

prefácio

Olhando para trás, falei sobre programação de sintaxe python, fundamentos introdutórios obrigatórios e programação de rede, multi-thread/multi-processo/co-rotina, etc. 'não leia antes. Não há necessidade de avançar, a série de artigos foi resolvida:

1. Aprenda python do zero comigo (1) Gramática de programação obrigatória
2. Aprenda python do zero comigo (2) Programação de rede
3. Aprenda python do zero comigo (3) Multi-thread/multiprocesso/ Cor-rotina
4. Aprenda python do zero comigo (4) Programação de banco de dados: banco de dados MySQL
5. Aprenda python do zero comigo (5) Programação de banco de dados: banco de dados Redis

Este artigo fala sobre: ​​programação de banco de dados python: banco de dados MongoDB

Esta série de artigos é baseada nas seguintes rotas de aprendizagem. Devido ao grande conteúdo:

Aprenda python do zero ao roteiro avançado avançado

Preste atenção na conta oficial: campo de treinamento de tecnologia python , aprenda passo a passo avançado

Recursos do Python adequados para aprendizado baseado em zero e pessoas avançadas:

① Projeto completo de python certificado pela Tencent, notas práticas do tutorial em PDF
② Mais de uma dúzia de tópicos de entrevistas em python dos principais fabricantes PDF
③ Conjunto completo de tutoriais em vídeo Python (reverso JS avançado avançado zero)
④ Centenas de combate real do projeto + código-fonte + notas
⑤ Programação gramática - aprendizado de máquina -desenvolvimento de pilha completa-análise de dados-crawler-APP engenharia reversa e outro conjunto completo de projetos + documentos
⑥ Troca e estudo
⑦ Quer receber pedidos de meio período

Próximo capítulo: Módulo de aprendizado de máquina

1. Uma breve introdução ao MongoDB

Python MongoDB é um banco de dados não relacional, também conhecido como banco de dados NoSQL. Soluções de armazenamento de dados projetadas para fornecer alto desempenho, alta disponibilidade e escalabilidade. O Python MongoDB armazena dados usando o formato JSON, o que o torna ideal para lidar com grandes quantidades de dados não estruturados.

Os principais recursos do Python MongoDB incluem :

  • Alto desempenho : Python MongoDB usa tecnologia de mapeamento de memória, que pode ler e gravar dados rapidamente.

  • Alta disponibilidade : Python MongoDB suporta replicação mestre-escravo e tecnologia de sharding, o que pode garantir a confiabilidade e disponibilidade dos dados.

  • Escalabilidade : o Python MongoDB pode escalar facilmente para vários nós para atender às crescentes demandas de dados.

  • Flexibilidade : Python MongoDB oferece suporte a esquema dinâmico, que pode alterar a estrutura de dados a qualquer momento, conforme necessário.

  • Facilidade de uso : Python MongoDB fornece uma API fácil de usar para facilitar a manipulação de dados.

A instalação do Python MongoDB é bem simples, basta usar o comando pip para instalá-lo. Após a conclusão da instalação, você pode usar a biblioteca pymongo para conectar e operar o banco de dados MongoDB.

O Python MongoDB possui uma ampla variedade de cenários de aplicativos, especialmente em processamento de big data e análise de dados em tempo real. Ele pode ser usado para armazenar vários tipos de dados não estruturados, como dados de log, dados de mídia social, dados de IoT, etc. Ao mesmo tempo, o Python MongoDB também pode ser integrado a outras soluções de armazenamento de dados (como bancos de dados relacionais) para atender a diferentes necessidades de processamento de dados.

Em resumo, o Python MongoDB é uma solução de armazenamento de dados de alto desempenho, altamente disponível e escalável que pode ajudar os desenvolvedores a lidar facilmente com grandes quantidades de dados não estruturados.

2. Comandos básicos sobre banco de dados

MongoDB é um banco de dados não relacional que usa documentos para armazenar dados em vez de tabelas. Python é uma linguagem de programação popular que pode interagir com bancos de dados MongoDB. Em Python, podemos usar a biblioteca PyMongo para conectar e operar o banco de dados MongoDB.

No MongoDB, podemos usar os seguintes comandos básicos para gerenciar o banco de dados:

criar banco de dados

No MongoDB, podemos usar o comando use para criar um novo banco de dados. Por exemplo, para criar um mydatabasebanco de dados nomeado podemos usar o seguinte comando:

use mydatabase

Se o banco de dados não existir, o MongoDB criará um novo. Se o banco de dados já existir, o MongoDB retornará uma referência a esse banco de dados.

mostrar banco de dados

Para exibir todos os bancos de dados no MongoDB, podemos usar o seguinte comando:

show dbs

Isso listará todos os bancos de dados no MongoDB.

excluir banco de dados

Para excluir um banco de dados no MongoDB, podemos usar o seguinte comando:

db.dropDatabase()

Isso excluirá o banco de dados atualmente selecionado.

alternar banco de dados

Para mudar para outro banco de dados no MongoDB, podemos usar o seguinte comando:

use anotherdatabase

Isso mudará para anotherdatabaseo banco de dados chamado .

mostrar banco de dados atual

Para exibir o banco de dados atualmente selecionado, podemos usar o seguinte comando:

db

Isso retornará uma referência ao banco de dados atualmente selecionado.

Resumindo, a interação entre Python e o banco de dados MongoDB é muito conveniente, e a biblioteca pode ser usada PyMongopara conectar e operar o banco de dados MongoDB. Em Python, podemos usar comandos básicos para gerenciar bancos de dados, como criar, exibir, excluir e alternar bancos de dados.

3. Comandos básicos sobre coleções

Comandos básicos do banco de dados Python MongoDB sobre coleções

As coleções são um conceito importante no MongoDB ao trabalhar com o banco de dados MongoDB em Python. As coleções são semelhantes às tabelas em bancos de dados relacionais, mas o MongoDB é um banco de dados de documentos, portanto, os documentos são armazenados em coleções.

A seguir estão os comandos básicos do banco de dados Python MongoDB em coleções :

criar coleção

Para criar uma coleção, você pode usar db.create_collection()os métodos do MongoDB. Em Python, as coleções podem ser criadas usando métodos de classes pymongona biblioteca .Collectioninsert_one()

import pymongo

# 连接MongoDB数据库
client = pymongo.MongoClient("mongodb://localhost:27017/")

# 创建一个名为mycollection的集合
mydb = client["mydatabase"]
mycol = mydb["mycollection"]

inserir documento

Para inserir documentos em uma coleção, você pode usar os métodos do MongoDB db.collection.insert(). Em Python, você pode usar métodos de classes pymongona biblioteca para inserir documentos.Collectioninsert_one()

import pymongo

# 连接MongoDB数据库
client = pymongo.MongoClient("mongodb://localhost:27017/")

# 获取mycollection集合
mydb = client["mydatabase"]
mycol = mydb["mycollection"]

# 插入一条文档
mydict = { "name": "John", "address": "Highway 37" }
x = mycol.insert_one(mydict)

documento de consulta

Para consultar documentos em uma coleção, você pode usar os métodos do MongoDB db.collection.find(). Em Python, os documentos podem ser consultados usando métodos de classes pymongona biblioteca .Collectionfind()

import pymongo

# 连接MongoDB数据库
client = pymongo.MongoClient("mongodb://localhost:27017/")

# 获取mycollection集合
mydb = client["mydatabase"]
mycol = mydb["mycollection"]

# 查询所有文档
for x in mycol.find():
  print(x)

atualizar documento

Para atualizar documentos em uma coleção, você pode usar os métodos do MongoDB db.collection.update(). Em Python, você pode usar métodos de classes pymongona biblioteca para atualizar documentos.Collectionupdate_one()

import pymongo

# 连接MongoDB数据库
client = pymongo.MongoClient("mongodb://localhost:27017/")

# 获取mycollection集合
mydb = client["mydatabase"]
mycol = mydb["mycollection"]

# 更新一条文档
myquery = { "address": "Highway 37" }
newvalues = { "$set": { "address": "Park Lane 38" } }
mycol.update_one(myquery, newvalues)

excluir documento

Para excluir documentos em uma coleção, você pode usar os métodos do MongoDB db.collection.remove(). Em Python, você pode usar métodos de classes pymongona biblioteca para deletar documentos.Collectiondelete_one()

import pymongo

# 连接MongoDB数据库
client = pymongo.MongoClient("mongodb://localhost:27017/")

# 获取mycollection集合
mydb = client["mydatabase"]
mycol = mydb["mycollection"]

# 删除一条文档
myquery = { "address": "Park Lane 38" }
mycol.delete_one(myquery)

4. Tipo de dados

O banco de dados MongoDB suporta os seguintes tipos de dados :

  • String (string): armazena dados de texto, o tipo de dados mais comumente usado.

  • Integer (inteiro): armazena números inteiros.

  • Boolean (Boolean): armazena um valor booleano (verdadeiro/falso).

  • Double (ponto flutuante de precisão dupla): Armazena números de ponto flutuante.

  • Teclas Min/Max: Os valores mínimo e máximo usados ​​para comparar valores.

  • Arrays (array): usado para armazenar arrays ou listas.

  • Timestamp: registra quando um documento foi modificado ou adicionado.

  • Objeto (objeto): para documentos incorporados.

  • Nulo (valor vazio): Usado para representar um valor nulo ou um campo que não existe.

  • Símbolo: como uma string, mas para um contexto específico.

  • Date (data): usado para armazenar data e hora.

  • Object ID (ID do objeto): usado para identificar exclusivamente o documento.

  • Dados binários (dados binários): usados ​​para armazenar dados binários, como imagens, áudio, etc.

  • Código (código): usado para armazenar o código JavaScript.

  • Expressão regular: usada para armazenar expressões regulares.

5. Operação de dados

Existem muitas maneiras de operar o banco de dados MongoDB em Python. Você pode usar a pymongobiblioteca oficial ou uma biblioteca de terceiros mongoengine.

A seguir estão pymongoas operações básicas de dados da biblioteca:

Conecte-se ao banco de dados

import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017/')
db = client['testdb']

inserir dados

collection = db['testcollection']
data = {'name': 'Tom', 'age': 18}
collection.insert_one(data)

Consultar dados

# 查询所有数据
result = collection.find()
for item in result:
    print(item)

# 查询指定条件的数据
result = collection.find({'name': 'Tom'})
for item in result:
    print(item)

atualizar dados

# 更新一条数据
collection.update_one({'name': 'Tom'}, {'$set': {'age': 20}})

# 更新多条数据
collection.update_many({'name': 'Tom'}, {'$set': {'age': 20}})

excluir dados

# 删除一条数据
collection.delete_one({'name': 'Tom'})

# 删除多条数据
collection.delete_many({'name': 'Tom'})

operação de agregação

# 统计数据总数
count = collection.count_documents({})

# 按条件分组统计
result = collection.aggregate([
    {'$group': {'_id': '$name', 'count': {'$sum': 1}}}
])
for item in result:
    print(item)

O acima é pymongoa operação básica de dados da biblioteca e o modo de operação de outras bibliotecas é semelhante

6. Backup e recuperação de dados

Fazer backup e restaurar o banco de dados MongoDB em Python pode usar mongodumpo mongorestorecomando and ou usar pymongoas funções da biblioteca para operar.

Faça backup e restaure bancos de dados MongoDB usando comandos mongodumpemongorestore

Faça backup do banco de dados MongoDB:

mongodump --host <host> --port <port> --db <database> --out <backup_directory>

Entre eles, está o endereço IP ou nome do host do servidor MongoDB, é o número da porta do servidor MongoDB, o padrão é 27017, é o nome do banco de dados a ser copiado e <backup_directory> é o diretório onde o backup arquivo é armazenado.

Restaure o banco de dados MongoDB:

mongorestore --host <host> --port <port> --db <database> <backup_directory>

Entre eles, , e <backup_directory> têm o mesmo significado que o comando backup.

pymongoFaça backup e restaure bancos de dados MongoDB usando a biblioteca

Faça backup do banco de dados MongoDB:

import pymongo
import datetime

client = pymongo.MongoClient("<mongodb_uri>")
db = client["<database>"]
collection = db["<collection>"]

backup = collection.find()

with open("<backup_file>", "w") as f:
    for doc in backup:
        f.write(str(doc) + "\n")

Entre eles, <mongodb_uri> é o URI do servidor MongoDB e é o nome do banco de dados e da coleção a ser copiada, e <backup_file> é o caminho do arquivo de backup.

Restaure o banco de dados MongoDB:

import pymongo

client = pymongo.MongoClient("<mongodb_uri>")
db = client["<database>"]
collection = db["<collection>"]

with open("<backup_file>", "r") as f:
    for line in f:
        doc = eval(line.strip())
        collection.insert_one(doc)

Entre eles, <mongodb_uri>, e <backup_file> têm o mesmo significado que o comando backup. Observe que este método é adequado apenas para backup e restauração de bancos de dados pequenos. Para bancos de dados grandes, é recomendável usar mongodumpe mongorestorecomandos para operar.

7. Operação de agregação

A operação de agregação do MongoDB refere-se ao processo de agrupamento, filtragem, classificação, computação e outras operações em vários documentos para gerar uma nova coleção de documentos. A biblioteca pymongo pode ser usada em Python para executar operações de agregação do MongoDB.

Aqui está um exemplo de uma operação de agregação simples, assumindo que temos uma coleção chamada alunos que contém o nome, a idade e a série de cada aluno:

from pymongo import MongoClient

client = MongoClient()
db = client['test']
collection = db['students']

pipeline = [
    {"$group": {"_id": "$age", "avg_score": {"$avg": "$score"}}},
    {"$sort": {"_id": 1}}
]

result = collection.aggregate(pipeline)

for doc in result:
    print(doc)

No código acima, usamos os operadores group e group e avg do MongoDB para calcular a nota média de cada faixa etária e usamos o operador $sort para classificar por idade em ordem crescente. O resultado final será uma coleção de documentos contendo notas médias para cada faixa etária.

Além dos operadores group and group e avg, o MongoDB também fornece muitos outros operadores de agregação, como match, match, project, sort, sort, limit, etc., que podem ser combinados de acordo com necessidades específicas.

8. Índice

Um índice no MongoDB é uma estrutura de dados usada para melhorar o desempenho da consulta. No MongoDB, vários tipos de índices podem ser usados, incluindo índices de campo único, índices compostos, índices de texto completo, etc.

Veja a seguir um exemplo de uso do Python para manipular índices do MongoDB:

Criar um índice de campo único

from pymongo import MongoClient

client = MongoClient()
db = client.test_database
collection = db.test_collection

# 创建单字段索引
collection.create_index("name")

# 查询是否创建成功
print(collection.index_information())

Criar índice composto

from pymongo import MongoClient

client = MongoClient()
db = client.test_database
collection = db.test_collection

# 创建复合索引
collection.create_index([("name", 1), ("age", -1)])

# 查询是否创建成功
print(collection.index_information())

Criar índice de texto completo

from pymongo import MongoClient

client = MongoClient()
db = client.test_database
collection = db.test_collection

# 创建全文索引
collection.create_index([("content", "text")])

# 查询是否创建成功
print(collection.index_information())

consulta usando índice

from pymongo import MongoClient

client = MongoClient()
db = client.test_database
collection = db.test_collection

# 查询使用索引
result = collection.find({"name": "Tom"}).explain()["executionStats"]
print(result)

O exemplo acima é um exemplo de índices do MongoDB operando em Python. Diferentes tipos de índices podem ser selecionados de acordo com as necessidades reais para melhorar o desempenho da consulta.

Nove, operação Pymongo

Para operar o banco de dados MongoDB em Python, é necessária pymongouma biblioteca . As pymongooperações comuns da biblioteca são as seguintes:

Conectar ao banco de dados MongoDB

import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017/')

selecione banco de dados

db = client['database_name']

selecionar coleção

collection = db['collection_name']

inserir documento

data = {'name': 'John', 'age': 25}
collection.insert_one(data)

documento de consulta

result = collection.find_one({'name': 'John'})

atualizar documento

collection.update_one({'name': 'John'}, {'$set': {'age': 30}})

excluir documento

collection.delete_one({'name': 'John'})

consultar vários documentos

results = collection.find({'age': {'$gt': 20}})
for result in results:
    print(result)

As pymongooperações acima são comuns da biblioteca, que podem ser chamadas de acordo com as necessidades reais.

Esta série de artigos é baseada nas seguintes rotas de aprendizagem. Devido ao grande conteúdo:

Aprenda python do zero ao roteiro avançado avançado

Preste atenção na conta oficial: campo de treinamento de tecnologia python , aprenda passo a passo avançado

Recursos do Python adequados para aprendizado baseado em zero e pessoas avançadas:

① Projeto completo de python certificado pela Tencent, notas práticas do tutorial em PDF
② Mais de uma dúzia de tópicos de entrevistas em python dos principais fabricantes PDF
③ Conjunto completo de tutoriais em vídeo Python (reverso JS avançado avançado zero)
④ Centenas de combate real do projeto + código-fonte + notas
⑤ Programação gramática - aprendizado de máquina -desenvolvimento de pilha completa-análise de dados-crawler-APP engenharia reversa e outro conjunto completo de projetos + documentos
⑥ Troca e estudo
⑦ Quer receber pedidos de meio período

Próximo capítulo: Módulo de aprendizado de máquina

Acho que você gosta

Origin blog.csdn.net/ch950401/article/details/131641937
Recomendado
Clasificación