Ich habe zwei Sammlungen, eine ist order_master und die andere ist product_master. Ich brauche nur diejenigen zu holen, die das jeweilige Produkt Namen sagen ‚Tops‘Wie verbinden Sie zwei Tabelle in Mongodb und wählen Sie alle Details aus beiden Tabellen?
Hier ist meine meine Sammlung Bestellen Meister
_id
o_type
product_data
->0
->product_id
->shipping_details
Product_master
_id
product_name
product_type
basierend auf Produktnamen I Wählen Sie die Bestelldetails
für zB:
Select * from order_master om product_master pm innere Verknüpfung auf pm._id = om.product_data.product_id wo pm.product_name = 'top'
ähnlich wie diese
Wie in Mongo db
schreibenich habe versucht, wie diese
$collection = $this->mongo_db->db->selectCollection('product_master');
$request = $collection->aggregate(
array(
'$match' => array(
'$and' => array(
array('product_name' => 'top')
)
)
),
array(
'$lookup' => array(
'from' => "order_master",
'localField' => "product_data.p_id",
'foreignField' => "_id",
'as' => "product_data"
)
)
);
Nur mein zwei Cent: MongoDB ist keine schicke Version eines RDBMS. Wenn Sie versuchen, Ihre Daten auf SQL-Art zu modellieren und MongoDB damit konform zu machen, erhalten Sie das Schlimmste aus beiden Welten (vielleicht abgesehen von Replikatsätzen). Lesen Sie die Dokumentation zur Datenmodellierung sorgfältig und überdenken Sie Ihr Datenmodell. Wenn Sie beitreten müssen, sind die Chancen sehr hoch, dass Sie sich für Ihren Anwendungsfall überanormalisiert haben. –