如何在Sails.js中执行模型联接和关系条件?

问题描述 投票:2回答:1

如何使模型加入查询(条件)并在Sails上对关系模型进行排序?

示例:我有4个表(mongodb中的集合)和mongodb中4个相关模型:

  • 用户:user_id,名称
  • 关注:user_id,following_id(正在跟踪用户ID)
  • 点:user_id,点
  • 发布:名称,内容,用户ID,创建的位置

因此,我要通过发布表进行查询,以查找我关注的用户的发布并按他们的观点进行排序。像这样的原始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)。

我使用过PHP框架Yii2,因此在这种情况下,我可以轻松做到这一点:

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();

我被困在帆中,非常感谢有人帮助我!!!

我如何使模型加入查询(条件)并在Sails上对关系模型进行排序?示例:我有4个表(mongodb中的集合)和mongodb中的4个相关模型:用户:user_id,名称遵循:...

sails.js sails-mongo
1个回答
0
投票

因为您使用的是Mongo,并且由于您需要普通JOIN的全部功能,所以您可能会被迫使用其他ORM解决方案(例如mongodb package on npm)进行此类查询。

© www.soinside.com 2019 - 2024. All rights reserved.