As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
$filter
O $filter operador no Amazon DocumentDB é usado para aplicar uma expressão de filtro a cada elemento de uma matriz e retornar uma matriz contendo somente os elementos que correspondem à condição especificada. Esse operador é útil quando você precisa realizar operações de filtragem complexas em campos de matriz em seus documentos.
Parâmetros
-
input: o campo de matriz a ser filtrado. -
as: o nome da variável a ser usada para cada elemento dainputmatriz nacondexpressão. -
cond: a expressão booleana que determina se um determinado elemento deve ser incluído na matriz de saída.
Exemplo (MongoDB Shell)
O exemplo a seguir demonstra como usar o $filter operador para projetar o cliente de cada pedido e criar um novo campo de matriz PaidItems contendo somente os itens da matriz de itens em que o preço é maior que 15. Essencialmente, ele filtra os itens de cada pedido para incluir apenas produtos que custam mais de 15.
Crie documentos de amostra
db.orders.insertMany([ { _id: 1, customer: "abc123", items: [ { name: "Product A", price: 10, qty: 2 }, { name: "Product B", price: 20, qty: 1 } ]}, { _id: 2, customer: "def456", items: [ { name: "Product C", price: 5, qty: 3 }, { name: "Product D", price: 15, qty: 4 } ]}, { _id: 3, customer: "ghi789", items: [ { name: "Product E", price: 8, qty: 3 }, { name: "Product F", price: 12, qty: 1 } ]} ]);
Exemplo de consulta
db.orders.aggregate([ { $project: { customer: 1, paidItems: { $filter: { input: "$items", as: "item", cond: { $gt: ["$$item.price", 15] } } } } } ]).pretty();
Saída
[
{
_id: 1,
customer: 'abc123',
paidItems: [ { name: 'Product B', price: 20, qty: 1 } ]
},
{ _id: 2, customer: 'def456', paidItems: [] },
{ _id: 3, customer: 'ghi789', paidItems: [] }
]
Exemplos de código
Para ver um exemplo de código para usar o $filter comando, escolha a guia do idioma que você deseja usar: