Menu Docs
Página inicial do Docs
/ / /
Scala
/

Projeções

Nesta página

  • Inclusão
  • Exclusion
  • Exclusão do campo _id
  • Correspondência de elementos da matriz com um filtro especificado
  • Correspondência de elementos de array com um filtro implícito
  • Corte
  • Pontuação de texto
  • Combinando projeções

As projeções fornece métodos de fábrica estáticos para os operadores de projeção do MongoDB . Cada método retorna uma instância do tipo Bson , que, por sua vez, pode ser passada para qualquer método que espere uma projeção.

Você pode importar os métodos da classe Projections estaticamente, como mostrado no seguinte código:

import org.mongodb.scala.model.Projections._

Os exemplos deste guia pressupõem essa importação estática.

Por padrão, todos os campos de cada documento são incluídos nos resultados. Para especificar a inclusão de um ou mais campos, que exclui implicitamente todos os outros campos exceto _id, utilize o método include() .

O exemplo seguinte inclui o campo quantity e, implicitamente, o campo _id :

include("quantity")

O exemplo seguinte inclui os totalAmount e, quantity , o _id :

include("quantity", "totalAmount")

Para especificar a exclusão de um ou mais campos, que inclui implicitamente todos os outros campos, utilize o método exclude() .

O exemplo seguinte exclui o campo quantity:

exclude("quantidade")

O exemplo seguinte exclui os campos quantity e totalAmount:

exclude("quantity", "totalAmount")

Para especificar a exclusão do campo _id , use o método excludeId() :

excludeId()

Isso equivale ao seguinte código:

exclude("_id")

Para especificar uma projeção que inclua somente o primeiro elemento de uma array que corresponda a um filtro de query fornecido, use o método elemMatch() que usa um nome de campo e um filtro.

O exemplo seguinte projeta o primeiro elemento do campo de array orders , onde o campo quantity é maior que 3:

elemMatch("orders", Filters.gt("quantity", 3))

Para especificar uma projeção que inclua somente o primeiro elemento de uma array que corresponda ao filtro fornecido como parte da query, use o método elemMatch() que usa apenas um nome de campo.

O exemplo a seguir projeta o primeiro elemento da array orders que corresponde ao filtro de query:

elemMatch("orders")

Para projetar uma fatia de uma array, use um dos métodos slice() .

O exemplo seguinte projeta os primeiros elementos 7 da array tags :

slice("tags", 7)

O exemplo a seguir pula os primeiros 2 elementos da tags array e projeta o próximo 5:

slice("tags", 2, 5)

Para especificar uma projeção da pontuação de uma query do $text , utilize o método metaTextScore() para especificar o nome do campo projetado.

O exemplo seguinte projeta a pontuação de texto como o valor do campo score:

metaTextScore("score")

Para combinar múltiplas projeções, use o método de campos.

O exemplo seguinte inclui os campos quantity e totalAmount e exclui o campo _id:

fields(include("quantity", "totalAmount"), excludeId())

Voltar

Filtros