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
/ /

Omitir resultados devueltos

En esta guía, puedes aprender a omitir un número especificado de resultados devueltos por operaciones de lectura.

Los ejemplos en esta guía utilizan lo siguiente Course struct como modelo para documentos en la colección courses:

type Course struct {
Title string
Enrollment int32
}

Para ejecutar los ejemplos en esta guía, cargue estos documentos en la colección db.courses con el siguiente snippet:

coll := client.Database("db").Collection("courses")
docs := []interface{}{
Course{Title: "World Fiction", Enrollment: 35},
Course{Title: "Abstract Algebra", Enrollment: 60},
Course{Title: "Modern Poetry", Enrollment: 12},
Course{Title: "Plate Tectonics", Enrollment: 45},
}
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 y el máximo de inscripciones, correspondientes a los campos title y enrollment.

Para omitir un número especificado de resultados devueltos de una query, pasa el número de documentos que deseas omitir al método SetSkip() de las opciones de la operación de lectura.

Las siguientes operaciones de lectura toman un objeto de opciones como parámetro:

  • Find()

  • FindOne()

  • CountDocuments()

  • gridfs.Bucket.Find()

Si el número de documentos supera el número de documentos encontrados para una query, esa query no devuelve ningún documento.

Tip

Introducir un número negativo en el método SetSkip() da como resultado un error en tiempo de ejecución.

Las operaciones de búsqueda devuelven documentos en un orden natural que no está ordenado según ningún campo. Para evitar omitir documentos aleatoriamente, utiliza el método SetSort() para ordenar documentos en un campo con valores únicos antes de establecer una opción de omisión.

El siguiente ejemplo realiza una operación Find() con el siguiente comportamiento:

  • Ordena los resultados en orden ascendente en el campo enrollment.

  • Omite los dos primeros documentos

opts := options.Find().SetSort(bson.D{{"enrollment", 1}}).SetSkip(2)
cursor, err := coll.Find(context.TODO(), bson.D{}, opts)
var results []Course
if err = cursor.All(context.TODO(), &results); err != nil {
panic(err)
}
for _, result := range results {
res, _ := bson.MarshalExtJSON(result, false, false)
fmt.Println(string(res))
}
{"title":"Plate Tectonics","enrollment":45}
{"title":"Abstract Algebra","enrollment":60}

También puede incluir el $skip etapa en un pipeline de agregación para omitir documentos.

El siguiente ejemplo realiza una operación de Aggregate() con el siguiente comportamiento:

  • Ordena los resultados en orden descendente en el campo enrollment

  • Omite el primer documento

sortStage := bson.D{{"$sort", bson.D{{"enrollment", -1}}}}
skipStage := bson.D{{"$skip", 1}}
cursor, err := coll.Aggregate(context.TODO(), mongo.Pipeline{sortStage, skipStage})
if err != nil {
panic(err)
}
var results []Course
if err = cursor.All(context.TODO(), &results); err != nil {
panic(err)
}
for _, result := range results {
res, _ := bson.MarshalExtJSON(result, false, false)
fmt.Println(string(res))
}
{"title":"Plate Tectonics","enrollment":45}
{"title":"World Fiction","enrollment":35}
{"title":"Modern Poetry","enrollment":12}

Para aprender más sobre las operaciones mencionadas, consulte las siguientes guías:

  • Especifica un query

  • Retrieve Data

  • Ordenar resultados

  • Agregación

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:

Volver

Ordenar resultados

En esta página