Laravel 4.2按其他集合字段或函数结果排序

时间:2016-08-09 12:24:05

标签: mongodb laravel-4 eloquent sql-order-by

我有一个 mongo数据库,我尝试编写一个 Eloquent 代码来更改某些字段,然后再在WHERE或ORDER BY子句中使用它们。像这样的SQL查询:

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

- 或 -

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

有时没有其他表,我只需要在Where或Order By子句中使用计算字段:

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

Select *
from agency 
Order by func(agency_admin)

其中func()是我的自定义函数。

任何建议?

我已经阅读Laravel 4/5, order by a foreign column了解我的一半问题,但我不知道如何使用它。

1 个答案:

答案 0 :(得分:0)

对于第一个查询:mongodb仅支持"加入"部分使用aggregation pipeline,这限制了您在一个集合中的聚合。对于"在不同的集合/表之间加入,只需逐个选择集合,首先是包含"其中"那个应该"加入"与前者一样,等等。

第二个问题让我困惑了几分钟,直到我看到this question并意识到它与你的第一个问题相同:对包含你的排序字段的集合进行排序并检索一些数据,然后转到另一个。

对于第3个问题,this question应该为您服务。