Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
$filter
El $filter operador de Amazon DocumentDB se utiliza para aplicar una expresión de filtro a cada elemento de una matriz y devolver una matriz que contiene solo los elementos que cumplen la condición especificada. Este operador resulta útil cuando necesita realizar operaciones de filtrado complejas en los campos matriciales de sus documentos.
Parámetros
-
input: El campo de matriz que se va a filtrar. -
as: el nombre de la variable que se utilizará para cada elemento de lainputmatriz dentro de lacondexpresión. -
cond: La expresión booleana que determina si un elemento determinado debe incluirse en la matriz de salida.
Ejemplo (MongoDB Shell)
En el siguiente ejemplo, se muestra cómo utilizar el $filter operador para proyectar el cliente de cada pedido y crear un nuevo campo matricial paiItems que contenga únicamente los artículos de la matriz items cuyo precio sea superior a 15. Básicamente, filtra los artículos de cada pedido para incluir solo los productos que cuestan más de 15€.
Crea documentos de muestra
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 } ]} ]);
Ejemplo de consulta
db.orders.aggregate([ { $project: { customer: 1, paidItems: { $filter: { input: "$items", as: "item", cond: { $gt: ["$$item.price", 15] } } } } } ]).pretty();
Salida
[
{
_id: 1,
customer: 'abc123',
paidItems: [ { name: 'Product B', price: 20, qty: 1 } ]
},
{ _id: 2, customer: 'def456', paidItems: [] },
{ _id: 3, customer: 'ghi789', paidItems: [] }
]
Ejemplos de código
Para ver un ejemplo de código para usar el $filter comando, elija la pestaña del idioma que desee usar: