Definição
$skipIgnora o número especificado de documentos que passam para o estágio e passa os documentos restantes para o próximo estágio no pipeline.
O estágio
$skiptem a seguinte forma de protótipo:{ $skip: <positive 64-bit integer> } $skiptira um número inteiro positivo que especifica o número máximo de documentos para ignorar.Observação
A partir do MongoDB 5.0, a agregação do pipeline
$skiptem um limite de número inteiro de 64bits. Os valores passados para o pipeline que excedem esse limite retornarão um erro de argumento inválido.
Comportamento
Utilizando $skip com Resultados Ordenados
Se estiver usando o estágio $skip com qualquer um dos seguintes:
a fase de agregação
$sort,o método
sort(), ouo campo
sortao comandofindAndModifyou ao métodofindAndModify()shell,
Certifique-se de incluir pelo menos um campo em sua classificação que contenha valores exclusivos, antes de passar os resultados para o estágio $skip.
A classificação em campos que contêm valores duplicados pode retornar uma ordem de classificação diferente para esses campos duplicados em várias execuções, especialmente quando a coleção está recebendo gravações ativamente.
A maneira mais fácil de garantir consistência de classificação é incluir o campo _id em sua query de classificação.
Consulte o seguinte para obter mais informações sobre cada um deles:
Exemplos
Considere o seguinte exemplo:
db.article.aggregate([ { $skip : 5 } ]);
Essa operação ignora os primeiros 5 documentos passados pelo pipeline. $skip não tem efeito no conteúdo dos documentos que ele transmite pelo pipeline.
Os exemplos de C# nesta página utilizam o banco de dados sample_mflix a partir dos conjuntos de dados de amostra do Atlas. Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de exemplo, consulte Introdução na documentação do driver MongoDB .NET/C#.
A seguinte classe Movie modela os documentos na collection sample_mflix.movies:
[] public class Movie { [] public ObjectId Id { get; set; } [] public string Title { get; set; } = null!; [] public int? Year { get; set; } [] public int? Runtime { get; set; } [] public string? Rated { get; set; } [] public int Metacritic { get; set; } [] public string? Plot { get; set; } [] public string? Type { get; set; } [] public string[]? Cast { get; set; } [] public string[]? Directors { get; set; } [] public string[]? Writers { get; set; } [] public ImdbData? Imdb { get; set; } }
Para usar o driver MongoDB .NET/C# para adicionar um estágio $skip a um pipeline de agregação, chame o método Skip() em um objeto PipelineDefinition.
O exemplo a seguir cria um estágio de pipeline que classifica os filmes por título e ID e ignora os primeiros 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 usar o driver Node.js do MongoDB para adicionar um estágio $skip a um pipeline de agregação , use o operador $skip em um objeto de pipeline.
O exemplo a seguir cria uma fase no pipeline que ignora os cinco primeiros documentos da coleção de entrada e envia os documentos restantes para a próxima fase do pipeline. O exemplo em seguida executa o pipeline de agregação:
const pipeline = [{ $skip: 5 }]; const cursor = collection.aggregate(pipeline); return cursor;
Saiba mais
Para ver exemplos completos de agregação que utilizam o estágio $skip, consulte os Tutoriais completos do pipeline de agregação.