2016-08-09 7 views
0

Ich habe eine Mongo Datenbank und ich versuche, einen Eloquent Code zu schreiben, einige Felder zu ändern, bevor sie in WO oder ORDER BY-Klauseln verwenden. so etwas wie diese SQL-Abfrage:Laravel 4.2 Bestellung von einem anderen Sammlung Feld oder Ergebnis einer Funktion

Select ag.*, ht.* 
from agency as ag inner join hotel as ht on ag.hotel_id = ht.id 
Where ht.title = 'OrangeHotel' 

- oder -

Select ag.*, ht.* 
from agency as ag inner join hotel as ht on ag.hotel_id = ht.id 
Order by ht.title 

manchmal gibt es keinen anderen Tisch, und ich brauche nur berechnetes Feld zu verwenden, in Wo oder ORDER BY-Klausel:

Select * 
from agency 
Where func(agency_admin) = 'testAdmin' 

Select * 
from agency 
Order by func(agency_admin) 

wo func() ist meine benutzerdefinierte Funktion.

irgendein Vorschlag?

und ich habe Laravel 4/5, order by a foreign column für die Hälfte meines Problems gelesen, aber ich weiß nicht, wie kann ich es verwenden.

Antwort

0

Für die erste Abfrage: mongodb unterstützt nur "Join" teilweise mit der aggregation pipeline, die Ihre Aggregation in einer Sammlung beschränkt. Für "Join" s zwischen verschiedenen Sammlungen/Tabellen, wählen Sie einfach aus Sammlungen nacheinander, zuerst die mit dem Feld "wo", dann die, die mit der ehemaligen "beitreten", und so weiter.

Die zweite Frage verwirrte mich für einige Minuten, bis ich sehe this question und erkannte, es ist das gleiche wie Ihre erste Frage: Sortieren Sie die Sammlung mit Ihrem Sortierfeld und retrive einige Daten, dann gehen Sie zu einem anderen.

Für die dritte Frage sollte this question Ihnen gut dienen.

Verwandte Themen