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 mydatabase
base 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 anotherdatabase
la 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 PyMongo
para 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 pymongo
en la biblioteca .Collection
insert_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 pymongo
en la biblioteca para insertar documentos.Collection
insert_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 pymongo
en la biblioteca .Collection
find()
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 pymongo
en la biblioteca para actualizar documentos.Collection
update_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 pymongo
en la biblioteca para eliminar documentos.Collection
delete_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 pymongo
biblioteca oficial o una biblioteca de terceros mongoengine
.
Las siguientes son pymongo
las 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 pymongo
la 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 mongodump
el mongorestore
comando y, o usar pymongo
las funciones en la biblioteca para operar.
Copia de seguridad y restauración de bases de datos MongoDB usando mongodump
y 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.
pymongo
Copia 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 mongodump
y mongorestore
comandos 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 pymongo
la biblioteca.Las siguientes son pymongo
las 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 pymongo
operaciones 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