Python MongoDB – distinto()

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *