【问题标题】:Laravel - Sorting after merging two collections?Laravel - 合并两个集合后排序?
【发布时间】:2017-10-05 19:57:09
【问题描述】:

所以我试图从两个不同的 MongoDB 集合中获取一些结果,并将它们显示在一个列表中,按日期排序。

我有以下代码:

$res=DB::collection('database_saver_mysql')
    ->orderBy('date','desc')
    ->get();

$res2=DB::colection('database_saver_postgres')
    ->orderBy('date','desc')
    ->get();

$merged=$res->merge($res2);
return response($merged);

正如预期的那样,这将显示一个接一个的列表,两者都是有序的。但是,我希望将它们混合在一起并排序,即我想对 $merged 集合进行排序。

我该怎么做呢?我试过 sortBy() 没有运气。

谢谢!

【问题讨论】:

    标签: php mongodb laravel collections eloquent


    【解决方案1】:

    您可以像这样对生成的集合进行排序:

    $sorted = $merged->sort();
    

    或者如果你想通过某个领域来做:

    $sorted = $merged->sortBy('date');
    

    【讨论】:

      【解决方案2】:

      合并后,重置键值并排序。

      return $merged->values()->sortBy('date');
      

      【讨论】:

        猜你喜欢
        • 2016-06-05
        • 1970-01-01
        • 2014-05-29
        • 2021-09-20
        • 1970-01-01
        • 2015-11-26
        • 2018-07-31
        • 1970-01-01
        • 2021-04-16
        相关资源
        最近更新 更多