У меня 2 коллекции пользователя и заказов.Я хочу собрать основную информацию, такую как имя пользователя, имя из коллекции пользователей и сумму из таблицы заказов.Я могу выбирать данные, получая информацию из коллекции пользователей и просматривая коллекцию заказов.Нумерация страниц также работает, но как реализовать сортировку с этим.Как применить сортировку по сумме суммы из коллекции заказов.Мой код указан ниже
$cursor = $collection->find($where)->sort($order)->skip($page)->limit($perPage);
foreach ($cursor as $key => $value) {
$orderCollection = $this->db->selectCollection('orders');
$userSubmissions = $orderCollection->aggregate([
['$match' => ['user_id' => $value['_id'], 'txn_type' => 'DR']],
['$group' => ['_id' => null, 'debit' => ['$sum' => '$amount']]],
['$sort' => $order]
]);}
Также мои коллекции
Коллекция пользователей
{
"_id" : ObjectId("59f0546ef2a608770e8b4569"),
"firstname" : "test",
"username" : "test@test.com",
"lastname" : "test",
"status" : NumberLong(1),
"admin" : NumberLong(1),
"created_at" : ISODate("2018-04-02T06:46:53.702Z")}
Коллекция заказов
{
"_id" : ObjectId("5aaa49d0f2a60838218b4568"),
"user_id" : ObjectId("59f0546ef2a608770e8b4569"),
"txn_type" : "DR",
"name" : "Test Test",
"amount" : 11.85,
"created" : ISODate("2018-03-15T10:24:16.634Z")}
Таким образом, мой вопрос заключается в том, как отсортировать, используя сумму суммы?
Ожидаемый результат detsils:
На приведенном выше снимке экрана я хочу отсортировать все столбцы, а _id, адрес электронной почты, имя, фамилия взяты из коллекции пользователей, а отправка и потраченная сумма получены из коллекции заказов.Кроме того, как подача, так и сумма, потраченная на сбор заказов, являются суммой полей.Так как сортировать используя все столбцы, которые?