我有一个查询。我想使用两列对表进行排序。我正在使用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")
}