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
$skipestágio tem o seguinte formato 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
$skipagregação do pipeline tem 64um limite de número inteiro de bits. 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 com qualquer um dos $skip 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 } ]);
Esta operação ignora os primeiros 5 documentos passados pelo pipeline. não tem efeito no conteúdo dos documentos que ele transmite ao longo do$skip 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 $skip estágio a uma agregação pipeline, chame o método unionWith() em um PipelineDefinition objeto.
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 de agregação completos que usam o $skipestágio, consulte os Tutoriais de aggregation pipeline completo.