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 usa para aplicar una expresión de filtro a cada elemento de una matriz y devolver una matriz que contiene solo los elementos que cumplen con la condición especificada. Este operador es útil cuando necesita realizar operaciones de filtrado complejas en los campos de la matriz de los 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)
El siguiente ejemplo muestra cómo usar el $filter operador para proyectar el cliente de cada pedido y crear un nuevo campo de matriz paidItems que contenga solo los artículos de la matriz de artículos cuyo precio es 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 sobre el uso del $filter comando, elige la pestaña del idioma que quieres usar: