Aprenda la programación de la base de datos python (6) desde cero conmigo: base de datos MongoDB

prefacio

Mirando hacia atrás, hablé sobre la programación de sintaxis de Python, conceptos básicos introductorios obligatorios y programación de redes, subprocesos múltiples/procesos múltiples/corrutina, etc. Ayer y hoy hablé sobre la programación de bases de datos MySQL, y Redis es el tercer artículo de MongoDB de hoy. No lo leí antes. No hay necesidad de seguir adelante, la serie de artículos se ha resuelto:

1. Aprende python desde cero conmigo (1) Gramática de programación obligatoria
2. Aprende python desde cero conmigo (2) Programación en red
3. Aprende python desde cero conmigo (3) Multi-thread/multi-process/ Coroutine
4. Aprende Python desde cero conmigo (4) Programación de base de datos: base de datos MySQL
5. Aprende Python desde cero conmigo (5) Programación de base de datos: base de datos Redis

Este artículo trata sobre: ​​programación de bases de datos en python: base de datos MongoDB

Esta serie de artículos se basa en las siguientes rutas de aprendizaje, debido al gran contenido:

Aprenda Python desde cero hasta la hoja de ruta avanzada avanzada

Preste atención a la cuenta oficial: campamento de entrenamiento de tecnología python , aprenda paso a paso avanzado

Recursos de Python adecuados para aprendizaje basado en cero y personas avanzadas:

① Notas de tutoriales prácticos del proyecto completo de Python certificado por Tencent PDF
② Más de una docena de temas de entrevistas de Python de los principales fabricantes en PDF
③ Conjunto completo de tutoriales en video de Python (JS inverso avanzado avanzado cero)
④ Cientos de proyectos de combate real + código fuente + notas
⑤ Programación gramática - aprendizaje automático -Desarrollo completo-análisis de datos-rastreador-APP ingeniería inversa y otro conjunto completo de proyectos + documentos
⑥ Intercambio y estudio
⑦ Quiere tomar pedidos a tiempo parcial

Siguiente capítulo: Módulo de aprendizaje automático

1. Una breve introducción a MongoDB

Python MongoDB es una base de datos no relacional, también conocida como base de datos NoSQL. Soluciones de almacenamiento de datos diseñadas para proporcionar alto rendimiento, alta disponibilidad y escalabilidad. Python MongoDB almacena datos usando el formato JSON, lo que lo hace ideal para manejar grandes cantidades de datos no estructurados.

Las características clave de Python MongoDB incluyen :

  • Alto rendimiento : Python MongoDB utiliza tecnología de mapeo de memoria, que puede leer y escribir datos rápidamente.

  • Alta disponibilidad : Python MongoDB es compatible con la tecnología de fragmentación y replicación maestro-esclavo, lo que puede garantizar la confiabilidad y disponibilidad de los datos.

  • Escalabilidad : Python MongoDB puede escalar fácilmente a múltiples nodos para satisfacer las crecientes demandas de datos.

  • Flexibilidad : Python MongoDB admite esquemas dinámicos, que pueden cambiar la estructura de datos en cualquier momento según sea necesario.

  • Facilidad de uso : Python MongoDB proporciona una API fácil de usar para facilitar la manipulación de datos.

La instalación de Python MongoDB es muy simple, solo use el comando pip para instalarlo. Una vez completada la instalación, puede usar la biblioteca pymongo para conectarse y operar la base de datos MongoDB.

Python MongoDB tiene una amplia gama de escenarios de aplicación, especialmente en el procesamiento de big data y el análisis de datos en tiempo real. Se puede usar para almacenar varios tipos de datos no estructurados, como datos de registro, datos de redes sociales, datos de IoT, etc. Al mismo tiempo, Python MongoDB también se puede integrar con otras soluciones de almacenamiento de datos (como bases de datos relacionales) para satisfacer diferentes necesidades de procesamiento de datos.

En resumen, Python MongoDB es una solución de almacenamiento de datos escalable, de alta disponibilidad y de alto rendimiento que puede ayudar a los desarrolladores a manejar fácilmente grandes cantidades de datos no estructurados.

2. Comandos básicos sobre la base de datos

MongoDB es una base de datos no relacional que utiliza documentos para almacenar datos en lugar de tablas. Python es un lenguaje de programación popular que puede interactuar con las bases de datos MongoDB. En Python, podemos usar la biblioteca PyMongo para conectar y operar la base de datos MongoDB.

En MongoDB, podemos usar los siguientes comandos básicos para administrar la base de datos:

crear base de datos

En MongoDB, podemos usar el comando use para crear una nueva base de datos. Por ejemplo, para crear una mydatabasebase de datos con nombre podemos usar el siguiente comando:

use mydatabase

Si la base de datos no existe, MongoDB creará una nueva. Si la base de datos ya existe, MongoDB devolverá una referencia a esa base de datos.

mostrar base de datos

Para mostrar todas las bases de datos en MongoDB, podemos usar el siguiente comando:

show dbs

Esto listará todas las bases de datos en MongoDB.

eliminar base de datos

Para eliminar una base de datos en MongoDB, podemos usar el siguiente comando:

db.dropDatabase()

Esto eliminará la base de datos actualmente seleccionada.

cambiar de base de datos

Para cambiar a otra base de datos en MongoDB, podemos usar el siguiente comando:

use anotherdatabase

Esto cambiará a anotherdatabasela base de datos llamada .

mostrar la base de datos actual

Para mostrar la base de datos actualmente seleccionada, podemos usar el siguiente comando:

db

Esto devolverá una referencia a la base de datos actualmente seleccionada.

En resumen, la interacción entre Python y la base de datos MongoDB es muy conveniente y la biblioteca se puede usar PyMongopara conectar y operar la base de datos MongoDB. En Python, podemos usar comandos básicos para administrar bases de datos, como crear, mostrar, eliminar y cambiar bases de datos.

3. Comandos básicos sobre colecciones

Comandos básicos de la base de datos Python MongoDB sobre colecciones

Las colecciones son un concepto importante en MongoDB cuando se trabaja con la base de datos MongoDB en Python. Las colecciones son similares a las tablas de las bases de datos relacionales, pero MongoDB es una base de datos de documentos, por lo que los documentos se almacenan en colecciones.

Los siguientes son los comandos básicos de la base de datos Python MongoDB sobre colecciones :

crear colección

Para crear una colección, puede usar db.create_collection()los métodos de MongoDB. En Python, las colecciones se pueden crear usando métodos de clases pymongoen la biblioteca .Collectioninsert_one()

import pymongo

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

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

insertar documento

Para insertar documentos en una colección, puede usar db.collection.insert()los métodos de MongoDB. En Python, puede usar métodos de clases pymongoen la biblioteca para insertar 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 en una colección, puede usar db.collection.find()los métodos de MongoDB. En Python, los documentos se pueden consultar utilizando métodos de clases pymongoen la 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)

actualizar documento

Para actualizar documentos en una colección, puede usar db.collection.update()los métodos de MongoDB. En Python, puede usar métodos de clases pymongoen la biblioteca para actualizar 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)

eliminar documento

Para eliminar documentos en una colección, puede usar db.collection.remove()los métodos de MongoDB. En Python, puede usar métodos de clases pymongoen la biblioteca para eliminar 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 datos

La base de datos MongoDB admite los siguientes tipos de datos :

  • String (cadena): almacenar datos de texto, el tipo de datos más utilizado.

  • Entero (integer): almacenar números enteros.

  • Booleano (Boolean): almacena un valor booleano (verdadero/falso).

  • Doble (punto flotante de doble precisión): almacena números de punto flotante.

  • Teclas Min/Max: Valores mínimos y máximos para comparar valores.

  • Arrays (matriz): se utiliza para almacenar matrices o listas.

  • Marca de tiempo: registra cuándo se modificó o agregó un documento.

  • Objeto (objeto): para documentos incrustados.

  • Nulo (valor vacío): se utiliza para representar un valor nulo o un campo que no existe.

  • Símbolo: como una cadena, pero para un contexto específico.

  • Date (fecha): se utiliza para almacenar la fecha y la hora.

  • ID de objeto (object ID): se utiliza para identificar de forma única el documento.

  • Datos binarios (binary data): se utiliza para almacenar datos binarios, como imágenes, audio, etc.

  • Code (código): se utiliza para almacenar código JavaScript.

  • Expresión regular: se utiliza para almacenar expresiones regulares.

5. Operación de datos

Hay muchas formas de operar la base de datos de MongoDB en Python, puede usar la pymongobiblioteca oficial o una biblioteca de terceros mongoengine.

Las siguientes son pymongolas operaciones básicas de datos de la biblioteca:

Conectarse a la base de datos

import pymongo

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

insertar datos

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

Consulta de datos

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

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

actualizar datos

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

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

borrar datos

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

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

operación de agregación

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

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

Lo anterior es pymongola operación básica de datos de la biblioteca, y el modo de operación de otras bibliotecas es similar

6. Copia de seguridad y recuperación de datos

La copia de seguridad y restauración de la base de datos MongoDB en Python puede usar mongodumpel mongorestorecomando y, o usar pymongolas funciones en la biblioteca para operar.

Copia de seguridad y restauración de bases de datos MongoDB usando mongodumpy comandosmongorestore

Copia de seguridad de la base de datos MongoDB:

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

Entre ellos, está la dirección IP o el nombre de host del servidor MongoDB, es el número de puerto del servidor MongoDB, el valor predeterminado es 27017, es el nombre de la base de datos que se respaldará y <backup_directory> es el directorio donde se realizará la copia de seguridad. el archivo está almacenado.

Restaure la base de datos MongoDB:

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

Entre ellos, , y <backup_directory> tienen el mismo significado que el comando de copia de seguridad.

pymongoCopia de seguridad y restauración de bases de datos MongoDB utilizando la biblioteca

Copia de seguridad de la base de datos 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 ellos, <mongodb_uri> es el URI del servidor MongoDB, y es el nombre de la base de datos y la colección de la que se realizará la copia de seguridad, y <backup_file> es la ruta del archivo de copia de seguridad.

Restaure la base de datos 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 ellos, <mongodb_uri> y <backup_file> tienen el mismo significado que el comando de copia de seguridad. Tenga en cuenta que este método solo es adecuado para realizar copias de seguridad y restaurar bases de datos pequeñas. Para bases de datos grandes, se recomienda usar mongodumpy mongorestorecomandos para operar.

7. Operación de agregación

La operación de agregación de MongoDB se refiere al proceso de agrupar, filtrar, clasificar, computar y otras operaciones en múltiples documentos para generar una nueva colección de documentos. La biblioteca pymongo se puede usar en Python para realizar operaciones de agregación de MongoDB.

Aquí hay un ejemplo de una operación de agregación simple, suponiendo que tenemos una colección llamada estudiantes que contiene el nombre, la edad y el grado de cada estudiante:

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)

En el código anterior, usamos los operadores group y group y avg de MongoDB para calcular la calificación promedio para cada grupo de edad, y usamos el operador $sort para clasificar por edad en orden ascendente. El resultado final será una colección de documentos que contengan calificaciones promedio para cada grupo de edad.

Además de los operadores group y group y avg, MongoDB también proporciona muchos otros operadores de agregación, como match, match, project, sort, sort, limit, etc., que se pueden combinar según las necesidades específicas.

8. Índice

Un índice en MongoDB es una estructura de datos utilizada para mejorar el rendimiento de las consultas. En MongoDB, se pueden usar varios tipos de índices, incluidos índices de un solo campo, índices compuestos, índices de texto completo, etc.

El siguiente es un ejemplo del uso de Python para manipular índices de MongoDB:

Crear un í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())

Crear índice compuesto

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())

Crear í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)

Lo anterior es un ejemplo de índices MongoDB operativos de Python. Se pueden seleccionar diferentes tipos de índices de acuerdo con las necesidades reales para mejorar el rendimiento de las consultas.

Nueve, operación pymongo

Para operar la base de datos MongoDB en Python, necesita usar pymongola biblioteca.Las siguientes son pymongolas operaciones comunes de la biblioteca:

Conectarse a la base de datos MongoDB

import pymongo

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

seleccionar base de datos

db = client['database_name']

seleccionar colección

collection = db['collection_name']

insertar documento

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

documento de consulta

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

actualizar documento

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

eliminar documento

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

consultar varios documentos

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

Las anteriores son pymongooperaciones comunes de la biblioteca, que se pueden llamar de acuerdo con las necesidades reales.

Esta serie de artículos se basa en las siguientes rutas de aprendizaje, debido al gran contenido:

Aprenda Python desde cero hasta la hoja de ruta avanzada avanzada

Preste atención a la cuenta oficial: campamento de entrenamiento de tecnología python , aprenda paso a paso avanzado

Recursos de Python adecuados para aprendizaje basado en cero y personas avanzadas:

① Notas de tutoriales prácticos del proyecto completo de Python certificado por Tencent PDF
② Más de una docena de temas de entrevistas de Python de los principales fabricantes en PDF
③ Conjunto completo de tutoriales en video de Python (JS inverso avanzado avanzado cero)
④ Cientos de proyectos de combate real + código fuente + notas
⑤ Programación gramática - aprendizaje automático -Desarrollo completo-análisis de datos-rastreador-APP ingeniería inversa y otro conjunto completo de proyectos + documentos
⑥ Intercambio y estudio
⑦ Quiere tomar pedidos a tiempo parcial

Siguiente capítulo: Módulo de aprendizaje automático

Supongo que te gusta

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