Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Recuperar valores distintos de campo

En esta guía, puedes aprender cómo utilizar el controlador Ruby para recuperar los valores distintos de un campo especificado en una colección.

Dentro de una colección, los documentos pueden contener valores diferentes para un solo campo. Por ejemplo, un documento en una colección restaurants tiene un valor borough de 'Manhattan', y otro tiene un valor borough de 'Queens'. Puedes usar el controlador de Ruby para recuperar todos los valores únicos que un campo contiene en varios documentos de una colección.

Los ejemplos de esta guía utilizan la colección restaurants en la base de datos sample_restaurants de los conjuntos de datos de muestra de Atlas. Para acceder a esta colección desde tu aplicación Ruby, crea un objeto Mongo::Client que se conecte a un clúster de Atlas y asigna los siguientes valores a tus variables database y collection:

database = client.use('sample_restaurants')
collection = database[:restaurants]

Para aprender cómo crear un clúster gratuito de MongoDB Atlas y cargar los conjuntos de datos de ejemplo, consulta la guía MongoDB Get Started.

Para recuperar los valores distintos de un campo especificado, llama al método distinct y pasa el nombre del campo para el que deseas encontrar valores distintos.

El siguiente ejemplo recupera los valores distintos del campo borough en la colección restaurants:

results = collection.distinct('borough')
results.each do |value|
puts value
end
Bronx
Brooklyn
Manhattan
Missing
Queens
Staten Island

La operación devuelve un arreglo que almacena cada valor distinto del campo borough. Aunque varios documentos tienen el mismo valor en el campo borough, cada valor solo aparece una vez en los resultados.

Puede proporcionar un filtro de query al método distinct para encontrar los valores distintos de un campo en un subconjunto de documentos de una colección. Un filtro de query es una expresión que especifica los criterios de búsqueda utilizados para coincidir documentos en una operación.

Tip

Para aprender más sobre cómo crear un filtro de query, consulta la guía Especificar una query.

El siguiente ejemplo recupera los valores distintos del campo borough para todos los documentos que tienen un valor de campo cuisine de 'Italian':

results = collection.distinct('borough', { cuisine: 'Italian' })
results.each do |value|
puts value
end
Bronx
Brooklyn
Manhattan
Queens
Staten Island

Se puede modificar el comportamiento del método distinct enviando un objeto Hash que especifique valores de opción. La siguiente tabla describe las opciones que se pueden establecer para personalizar la operación:

Opción
Descripción

collation

La intercalación que se utilizará para la operación.
Tipo: Hash

max_time_ms

La cantidad máxima de tiempo en milisegundos que la operación puede ejecutar.
Tipo: Integer

read

La preferencia de lectura que se utilizará para la operación. Para obtener más información, consulte Preferencia de lectura en el manual de MongoDB Server.
Tipo: Hash

session

La sesión a utilizar para la operación.
Tipo: Session

El siguiente ejemplo recupera los valores distintos del campo name para todos los documentos que tienen un valor de campo borough de 'Bronx' y un valor de campo cuisine de 'Pizza'. También establece la opción read, que instruye a la operación para que use una preferencia de lectura primary_preferred:

filter = { borough: 'Bronx', cuisine: 'Pizza' }
options = { read: { mode: :primary_preferred } }
results = collection.distinct('name', filter, options)
results.each do |value|
puts value
end
$1.25 Pizza
18 East Gunhill Pizza
2 Bros
Aenos Pizza
Alitalia Pizza Restaurant
Amici Pizza And Pasta
Angie'S Cafe Pizza
Anthony & Joe'S Pizza
Anthony'S Pizza
Antivari Pizza
Arturo'S Pizza
Bartow Pizza
...

Para obtener más información sobre el método distinct, consulta la documentación de la API.