AIdeaText commited on
Commit
5b70ab2
verified
1 Parent(s): 908521c

Create mongo_db.py

Browse files
Files changed (1) hide show
  1. modules/database/mongo_db.py +64 -0
modules/database/mongo_db.py ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+ from .database_init import get_mongodb
4
+ import logging
5
+
6
+ logger = logging.getLogger(__name__)
7
+
8
+ def get_collection(collection_name):
9
+ try:
10
+ db = get_mongodb()
11
+ if db is None:
12
+ logger.error(f"No se pudo obtener la base de datos para {collection_name}")
13
+ return None
14
+
15
+ collection = db[collection_name]
16
+ logger.info(f"Colecci贸n {collection_name} obtenida exitosamente")
17
+ return collection
18
+
19
+ except Exception as e:
20
+ logger.error(f"Error al obtener colecci贸n {collection_name}: {str(e)}")
21
+ return None
22
+
23
+ def insert_document(collection_name, document):
24
+ collection = get_collection(collection_name)
25
+ try:
26
+ result = collection.insert_one(document)
27
+ logger.info(f"Documento insertado en {collection_name} con ID: {result.inserted_id}")
28
+ return result.inserted_id
29
+ except Exception as e:
30
+ logger.error(f"Error al insertar documento en {collection_name}: {str(e)}")
31
+ return None
32
+
33
+ def find_documents(collection_name, query, sort=None, limit=None):
34
+ collection = get_collection(collection_name)
35
+ try:
36
+ cursor = collection.find(query)
37
+ if sort:
38
+ cursor = cursor.sort(sort)
39
+ if limit:
40
+ cursor = cursor.limit(limit)
41
+ return list(cursor)
42
+ except Exception as e:
43
+ logger.error(f"Error al buscar documentos en {collection_name}: {str(e)}")
44
+ return []
45
+
46
+ def update_document(collection_name, query, update):
47
+ collection = get_collection(collection_name)
48
+ try:
49
+ result = collection.update_one(query, update)
50
+ logger.info(f"Documento actualizado en {collection_name}: {result.modified_count} modificado(s)")
51
+ return result.modified_count
52
+ except Exception as e:
53
+ logger.error(f"Error al actualizar documento en {collection_name}: {str(e)}")
54
+ return 0
55
+
56
+ def delete_document(collection_name, query):
57
+ collection = get_collection(collection_name)
58
+ try:
59
+ result = collection.delete_one(query)
60
+ logger.info(f"Documento eliminado de {collection_name}: {result.deleted_count} eliminado(s)")
61
+ return result.deleted_count
62
+ except Exception as e:
63
+ logger.error(f"Error al eliminar documento de {collection_name}: {str(e)}")
64
+ return 0