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

A classeProjeçõ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 Bson tipo, 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