在mongodb laravel中按多列排序

时间:2015-01-07 16:42:27

标签: php mongodb sorting laravel sql-order-by

我有一个查询。我想使用两列对表进行排序。我正在使用mongodb laravel jessengers图书馆使用laravel雄辩。

这是我的疑问:

 Publish::with(array('user','notify','notify.user','hoots','story','image'))
         ->whereIn('user_id',$key_with_current_user)
         ->orwhereIn('post_id',$news_data)          
         ->orderBy('score','DESC')  
         ->orderBy('created_at','DESC')          
         ->get()
         ->toArray();

现在我得到的结果是首先指定的列。对于上述查询,它按分数排序,但不按分数和created_at排序。

有任何帮助吗?我们如何使用laravel eloquent查询对mongodb中的多列进行排序。

我还在rockmongo的查询shell中测试了它,它的行为相同。只能按一列排序。

对于测试我有像

这样的数据
 {
 "_id": ObjectId("54abd1888ead0ee85f8b4569"),
 "created_at": ISODate("2015-01-06T12:14:00.819Z"),
 "post_id": "54abd1888ead0ee85f8b4568",
 "score": NumberInt(0),   
 "updated_at"▼: ISODate("2015-01-07T15:43:27.28Z"),
}
{
"_id": ObjectId("54ad2bf98ead0e22658b4569"),
"created_at": ISODate("2015-01-07T12:52:09.81Z"),
"post_id": "54ad2bf98ead0e22658b4568",
"score": 0.22106,  
"updated_at": ISODate("2015-01-07T14:20:53.942Z")
}
{
"_id": ObjectId("54accd868ead0e826a8b456a"),
"created_at": ISODate("2015-01-07T06:09:10.920Z"),
"post_id": "54accd868ead0e826a8b4569",
"score": 2.83313,   
"updated_at": ISODate("2015-01-07T08:42:22.116Z")  

}

0 个答案:

没有答案