Projeções
Nesta página
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.
Inclusão
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")
Exclusion
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")
Exclusão do campo _id
Para especificar a exclusão do campo _id
, use o método excludeId()
:
excludeId()
Isso equivale ao seguinte código:
exclude("_id")
Correspondência de elementos da matriz com um filtro especificado
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))
Correspondência de elementos de array com um filtro implícito
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")
Corte
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)
Pontuação de texto
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")
Combinando projeções
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())