MongoDB es una base de datos multiplataforma orientada a documentos que funciona con el concepto de colecciones y documentos. Almacena datos en forma de pares clave-valor y es un programa de base de datos NoSQL. El término NoSQL significa no relacional. Consulte MongoDB y Python para obtener una introducción detallada al tema. Ahora comprendamos el uso de la función distintiva() en PyMongo.
distinto()
PyMongo incluye la distinct()
función que encuentra y devuelve los distintos valores de un campo específico en una sola colección y devuelve los resultados en una array.
Sintaxis: distinto (clave, filtro = Ninguno, sesión = Ninguno, **kwargs)
Parámetros:
- clave: nombre del campo para el que se deben encontrar los distintos valores.
- filter : (Opcional) Un documento de consulta que especifica los documentos desde los cuales recuperar los distintos valores.
- session : (Opcional) una ClientSession.
Vamos a crear una colección de muestra:
# importing the module from pymongo import MongoClient # creating a MongoClient object client = MongoClient() # connecting with the portnumber and host client = MongoClient("mongodb://localhost:27017/") # accessing the database database = client['database'] # access collection of the database mycollection = mydatabase['myTable'] documents = [{"_id": 1, "dept": "A", "item": {"code": "012", "color": "red"}, "sizes": ["S", "L"]}, {"_id": 2, "dept": "A", "item": {"code": "012", "color": "blue"}, "sizes": ["M", "S"]}, {"_id": 3, "dept": "B", "item": {"code": "101", "color": "blue"}, "sizes": "L"}, {"_id": 4, "dept": "A", "item": {"code": "679", "color": "black"}, "sizes": ["M"]}] mycollection.insert_many(documents) for doc in mycollection.find({}): print(doc)
Producción :
{'_id': 1, 'dept': 'A', 'item': {'code': '012', 'color': 'red'}, 'sizes': ['S', 'L']} {'_id': 2, 'dept': 'A', 'item': {'code': '012', 'color': 'blue'}, 'sizes': ['M', 'S']} {'_id': 3, 'dept': 'B', 'item': {'code': '101', 'color': 'blue'}, 'sizes': 'L'} {'_id': 4, 'dept': 'A', 'item': {'code': '679', 'color': 'black'}, 'sizes': ['M']}
Ahora lo haremos; usa el distinct()
método para:
- Devolver valores distintos para un campo
- Devolver valores distintos para un campo incrustado
- Devolver valores distintos para un campo de array
- Consulta específica de devolución
# distinct() function returns the distinct values for the # field dept from all documents in the mycollection collection print(mycollection.distinct('dept')) # distinct values for the field color, # embedded in the field item, from all documents # in the mycollection collection print(mycollection.distinct('item.color')) # returns the distinct values for the field sizes # from all documents in the mycollection collection print(mycollection.distinct("sizes")) # distinct values for the field code, # embedded in the field item, from the documents # in mycollection collection whose dept is equal to B. print(mycollection.distinct("item.code", {"dept" : "B"}))
Output :
['A', 'B'] ['red', 'blue', 'black'] ['L', 'S', 'M'] ['101']
Publicación traducida automáticamente
Artículo escrito por gauravbabbar25 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA