Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Retrieve Distinct Values

En esta guía, puedes aprender cómo recuperar valores únicos para un campo específico en una sola colección.

El ejemplo en esta guía utiliza lo siguiente Course struct como modelo para documentos en la colección courses:

type Course struct {
Title string
Department string
Enrollment int32
}

Para ejecutar el ejemplo, cargue los datos de muestra en la colección db.courses con el siguiente snippet:

coll := client.Database("db").Collection("courses")
docs := []interface{}{
Course{Title: "World Fiction", Department: "English", Enrollment: 35},
Course{Title: "Abstract Algebra", Department: "Mathematics", Enrollment: 60},
Course{Title: "Modern Poetry", Department: "English", Enrollment: 12},
Course{Title: "Plate Tectonics", Department: "Earth Science", Enrollment: 30},
}
result, err := coll.InsertMany(context.TODO(), docs)

Tip

Bases de datos y colecciones inexistentes

Si la base de datos y la colección necesarias no existen cuando realizas una operación de guardar, el servidor las crea implícitamente.

Cada documento contiene una descripción de un curso universitario que incluye el título del curso, el departamento y la inscripción. Estos elementos corresponden a los campos title, department y enrollment en cada documento.

Para recuperar valores distintos de un campo especificado en una sola colección, pasa los siguientes parámetros al método Distinct():

  • El nombre del campo para el que desea valores distintos

  • Un non-nil filtro de query que especifica qué documentos coincidirán

Tip

Si especificas un filtro de query vacío, el método Distinct() busca valores distintos en todos los documentos de una colección.

Puedes modificar el comportamiento del método Distinct() pasando un DistinctOptions. Si no se especifica un DistinctOptions, el driver utiliza los valores por defecto para cada opción.

El tipo DistinctOptions te permite configurar opciones con los siguientes métodos:

Método
Descripción

SetCollation()

The type of language collation to use when sorting results.
Default: nil

SetMaxTime()

The maximum amount of time that the query can run on the server.
Default: nil

El siguiente ejemplo coincide con documentos cuyo valor de campo enrollment es menor que 50 e imprime los valores distintos del campo department utilizando el método Distinct():

results, err := coll.Distinct(context.TODO(), "department", bson.D{{"enrollment", bson.D{{"$lt", 50}}}})
if err != nil {
panic(err)
}
for _, result := range results {
fmt.Println(result)
}
Earth Science
English

Para un ejemplo ejecutable de cómo recuperar valores distintos, consulta Recupera los valores únicos de un campo.

Para aprender a construir un filtro de query, consulte Especificar una query.

Para obtener más información sobre cualquiera de los métodos o tipos discutidos en esta guía, consultar la siguiente documentación de la API:

  • Distinct()

  • DistinctOptions

Volver

Cursores de datos

En esta página