Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ /

Aggregation pipeline e collections fragmentadas

Nesta página

  • Comportamento
  • Otimização

O pipeline de agregação suporta operações em coleçõesfragmentadas . Esta seção descreve comportamentos específicos para o pipeline de agregação e coleções fragmentadas.

Se o pipeline começar com um $match exato em uma chave de shard e o pipeline não contiver estágios$out ou $lookup, todo o pipeline será executado somente no shard correspondente.

Quando as operações de aggregation são executadas em vários shards, os resultados são encaminhados para o mongos a ser mesclado, exceto nos seguintes casos:

  • Se o pipeline incluir o estágio $out , a mesclagem será executada no fragmento onde a coleção de saída reside.

  • Se o pipeline incluir o estágio $lookup que faz referência a uma collection não fragmentada, a mesclagem será executada no fragmento onde a collection não fragmentada reside.

  • Se o pipeline incluir um estágio de classificação ou agrupamento e a configuração allowDiskUse estiver habilitada, a mesclagem será executada em um shard selecionado aleatoriamente.

Ao dividir o pipeline de agregação em duas partes, o pipeline é dividido para garantir que os fragmentos executem o maior número possível de estágios, considerando a otimização.

Para ver como o pipeline foi dividido, inclua a opção explain no método db.collection.aggregate().

As otimizações estão sujeitas a alterações entre as versões.

Voltar

Limites