Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
$filter
Der $filter Operator in Amazon DocumentDB wird verwendet, um einen Filterausdruck auf jedes Element eines Arrays anzuwenden und ein Array zurückzugeben, das nur die Elemente enthält, die der angegebenen Bedingung entsprechen. Dieser Operator ist nützlich, wenn Sie komplexe Filteroperationen für Array-Felder in Ihren Dokumenten durchführen müssen.
Parameter
-
input: Das zu filternde Array-Feld. -
as: Der Variablenname, der für jedes Element desinputArrays innerhalb descondAusdrucks verwendet werden soll. -
cond: Der boolesche Ausdruck, der bestimmt, ob ein bestimmtes Element in das Ausgabearray aufgenommen werden soll.
Beispiel (MongoDB Shell)
Das folgende Beispiel zeigt, wie der $filter Operator verwendet wird, um den Kunden jeder Bestellung zu projizieren und ein neues Array-Feld PaidItems zu erstellen, das nur die Artikel aus dem Artikelarray enthält, bei denen der Preis höher als 15 ist. Im Wesentlichen werden die Artikel jeder Bestellung so gefiltert, dass sie nur Produkte enthalten, die mehr als 15€ kosten.
Erstellen Sie Beispieldokumente
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 } ]} ]);
Beispiel für eine Abfrage
db.orders.aggregate([ { $project: { customer: 1, paidItems: { $filter: { input: "$items", as: "item", cond: { $gt: ["$$item.price", 15] } } } } } ]).pretty();
Ausgabe
[
{
_id: 1,
customer: 'abc123',
paidItems: [ { name: 'Product B', price: 20, qty: 1 } ]
},
{ _id: 2, customer: 'def456', paidItems: [] },
{ _id: 3, customer: 'ghi789', paidItems: [] }
]
Codebeispiele
Um ein Codebeispiel für die Verwendung des $filter Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten: