Involvierte Definitionen:Veranstaltung: DEDSReferenz: @stoerl2024 (p. 6)
⠀
Proposition: MongoDB-Abfrage bei einseitigem Referencing
Es sei folgende Modellierung gegeben:
Unter Zuhilfenahme der folgenden Abfrage erhalten wir alle Bestellungen zu der Kundennummer 42 (inklusive allen beinhalteten Produkten sowie dem jeweiligen Bestelldatum).
Hierzu:
- suchen wir alle Einträge mit
custId=42aus derOrder-Collection,- holen über ein Lookup alle Einträge aus der
Orderline-Collection, derenorderIdmit derorderIdder jeweiligenorderübereinstimmt- und wählen schließlich via
$projectdie beiden FelderorderDateaus derordersowieproductIdaus derorderlineaus. Das Feld_idignorieren wir.// MongoDB // Ausgabe Bestellungen (Produkte, Bestelldatum) // des Kunden mit der Kundennummer 42 db.Order.aggregate([ { "$match": { "custId": 42 } }, { "$lookup": { "from": "Orderline", "localField": "orderId", "foreignField": "orderId", "as": "orderlines" } }, { "$project" : { "_id": 0, "orderDate": 1, "orderlines.productId": 1 } } ]);
