Projeções
Nesta página
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.
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())