Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
$filter
L'$filteroperatore in Amazon DocumentDB viene utilizzato per applicare un'espressione di filtro a ciascun elemento di un array e restituire un array contenente solo gli elementi che corrispondono alla condizione specificata. Questo operatore è utile quando è necessario eseguire operazioni di filtraggio complesse sui campi di matrice all'interno dei documenti.
Parametri
-
input: Il campo dell'array da filtrare. -
as: il nome della variabile da utilizzare per ogni elemento dell'inputarray all'interno dell'condespressione. -
cond: L'espressione booleana che determina se un determinato elemento deve essere incluso nell'array di output.
Esempio (MongoDB Shell)
L'esempio seguente dimostra come utilizzare l'$filteroperatore per proiettare il cliente di ogni ordine e creare un nuovo campo di matrice PaidItems contenente solo gli articoli dell'array items il cui prezzo è maggiore di 15. In sostanza, filtra gli articoli di ciascun ordine per includere solo i prodotti che costano più di 15€.
Crea documenti di esempio
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 } ]} ]);
Esempio di interrogazione
db.orders.aggregate([ { $project: { customer: 1, paidItems: { $filter: { input: "$items", as: "item", cond: { $gt: ["$$item.price", 15] } } } } } ]).pretty();
Output
[
{
_id: 1,
customer: 'abc123',
paidItems: [ { name: 'Product B', price: 20, qty: 1 } ]
},
{ _id: 2, customer: 'def456', paidItems: [] },
{ _id: 3, customer: 'ghi789', paidItems: [] }
]
Esempi di codice
Per visualizzare un esempio di codice per l'utilizzo del $filter comando, scegliete la scheda relativa alla lingua che desiderate utilizzare: