Как сделать запрос на объединение моделей (условие) и отсортировать их по реляционным моделям в Sails?
Пример: у меня есть 4 таблицы (коллекции в mongodb) и 4 связанных модели в mongodb:
- Пользователь: user_id, имя
- Follow: user_id, follow_id (идентификатор пользователя отслеживается)
- Точка: user_id, точка
- Сообщение: имя, содержимое , user_id, creation_at
Итак, из таблицы сообщений я хочу сделать запрос, чтобы найти сообщения пользователей, за которыми я следил, и отсортировать их по точке. Как этот сырой sql:
SELECT post.* FROM post
LEFT JOIN user_point up ON up.user_id = post.user_id
WHERE post.user_id IN (1,2,3,4) // assume I got my following_user_ids result is 1,2,3,4 for this case so no need to join follow table
ORDER BY up.point DESC // high point then first return
Я не знаю, как это можно сделать с помощью модели Sails? Я прочитал много инструкций, не получил никакой помощи. Почти люди говорят: Sails Association, но она просто помогает вернуть отношение вместо того, чтобы делать где или упорядочить, чтобы отсортировать результаты оригинальной модели (это случай: post).
Я работал с Yii2, PHP рамки, так что в этом случае я могу сделать это легко:
Post::model()->leftJoin('user_point up', 'up.user_id = post.user_id')->where(['post.user_id' => [1,2,3,4])->orderBy(['up.point' => SORT_DESC])->all();
Я застрял в Парусах, очень спасибо, если кто-то поможет мне !!!