Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

$skip (etapa de agregación)

$skip

Salta sobre el número especificado de documentos que pasan a la etapa y pasa los documentos restantes a la siguiente etapa en la pipeline.

La $skip El escenario tiene la siguiente forma de prototipo:

{ $skip: <positive 64-bit integer> }

$skip toma un número entero positivo que especifica el número máximo de documentos que se pueden omitir.

Nota

A partir de MongoDB.5 0, el pipeline de agregación tiene $skip un límite de enteros de 64 bits. Los valores que se pasan al pipeline y que exceden este límite devolverán un error de argumento no válido.

Si utilizas la etapa $skip con cualquiera de:

  • la etapa de agregación $sort ,

  • el método sort(), o

  • el campo sort al comando findAndModify o al método de shell findAndModify(),

asegurarse de incluir al menos un campo en la ordenación que contenga valores únicos, antes de pasar los resultados a la etapa $skip.

La ordenación en campos que contienen valores duplicados puede devolver un orden de clasificación diferente para esos campos duplicados en múltiples ejecuciones, especialmente cuando la colección recibe escrituras activamente.

La forma más sencilla de garantizar la coherencia de ordenamiento es incluir el campo _id en la query de ordenación.

Consulte lo siguiente para obtener más información sobre cada uno:

Considera el siguiente ejemplo:

db.article.aggregate([
{ $skip : 5 }
]);

Esta operación omite los primeros 5 documentos que la pipeline le pasa. $skip no tiene efecto en el contenido de los documentos que pasan a lo largo del pipeline.

Los ejemplos de C# en esta página utilizan la base de datos sample_mflix de los conjuntos de datos de muestra de Atlas. Para aprender a crear un clúster gratuito de MongoDB Atlas y cargar los conjuntos de datos de muestra, consulta Primeros pasos en la documentación del controlador de MongoDB .NET/C#.

La siguiente clase Movie modela los documentos en la colección sample_mflix.movies:

[BsonIgnoreExtraElements]
public class Movie
{
[BsonId]
public ObjectId Id { get; set; }
[BsonElement("title")]
public string Title { get; set; } = null!;
[BsonElement("year")]
public int? Year { get; set; }
[BsonElement("runtime")]
public int? Runtime { get; set; }
[BsonElement("rated")]
public string? Rated { get; set; }
[BsonElement("metacritic")]
public int Metacritic { get; set; }
[BsonElement("plot")]
public string? Plot { get; set; }
[BsonElement("type")]
public string? Type { get; set; }
[BsonElement("cast")]
public string[]? Cast { get; set; }
[BsonElement("directors")]
public string[]? Directors { get; set; }
[BsonElement("writers")]
public string[]? Writers { get; set; }
[BsonElement("imdb")]
public ImdbData? Imdb { get; set; }
}

Para utilizar el driver de MongoDB .NET/C# para agregar una etapa $skip a una pipeline de agregación, llama a la Skip() método en un objeto PipelineDefinition.

El siguiente ejemplo crea una etapa de canalización que ordena las películas por título e ID y omite los primeros 5 documentos:

var pipeline = new EmptyPipelineDefinition<Movie>()
.Sort(Builders<Movie>.Sort
.Ascending(m => m.Title)
.Ascending(m => m.Id))
.Skip(5)
.Limit(5);
{"_id": "...", "title": "'Doc'", "runtime": "...", "rated": "...", "year": "...", "metacritic": "..."}
{"_id": "...", "title": "'Pimpernel' Smith", "runtime": "...", "rated": "...", "year": "...", "metacritic": "..."}
{"_id": "...", "title": "'R Xmas", "runtime": "...", "rated": "...", "year": "...", "metacritic": "..."}
{"_id": "...", "title": "'Round Midnight", "runtime": "...", "rated": "...", "year": "...", "metacritic": "..."}
{"_id": "...", "title": "'Til Madness Do Us Part", "runtime": "...", "rated": "...", "year": "...", "metacritic": "..."}

Para utilizar el controlador de MongoDB Node.js para agregar una etapa de $skip a una canalización de agregación, utilice el Operador $skip en un objeto de canalización.

El siguiente ejemplo crea una etapa de pipeline que omite los primeros cinco documentos en la colección de entrada y pasa los documentos restantes a la siguiente etapa del pipeline. A continuación, el ejemplo ejecuta la pipeline de agregación:

const pipeline = [{ $skip: 5 }];
const cursor = collection.aggregate(pipeline);
return cursor;

Para ver ejemplos completos de agregación que utilizan la etapa $skip, consulte los Tutoriales completos de la canalización de agregación.

Volver

$shardedDataDistribution

En esta página