如何在 Sails.js 中定义需要来自第三个模型/表的附加条件和/或数据的模型关联?

Posted

技术标签:

【中文标题】如何在 Sails.js 中定义需要来自第三个模型/表的附加条件和/或数据的模型关联?【英文标题】:How does one define a model association in Sails.js that requires additional criteria and/or data from a third model/table? 【发布时间】:2020-06-22 12:43:18 【问题描述】:

我正在开发一个应用程序,但在 Sails.js 中的模型关联方面遇到了一些困难。我已经开始使用通用网络应用程序。该应用程序用于跟踪户外教育课程。我目前只有一个用户模型,但用户可能有多个“角色”。例如,同一用户可能既是课程讲师,也可能是学生。

我有用户、角色、班级部分和学校的模型。用户和角色之间的关联很简单并且有效。 Section 和 School 也是一样(一个类 Section “属于”一个 School)。但是,我想在 Section 上定义一个关联来列出属于该部分的学生。这样做需要返回角色包括“学生”或存储用户角色('学生')表/关系的记录 ID 的用户。

Sails 是否支持“多次通过”,您可以在其中过滤中间连接表?

...或者还有其他方法可以解决这个问题吗?我试过和一只橡皮鸭交谈,但没有成功,但我觉得还有另一种解决方案在盯着我看。

【问题讨论】:

【参考方案1】:

您可以建立多对多关系,然后使用 Module.populate() 进行过滤,如文档所示:

https://sailsjs.com/documentation/reference/waterline-orm/queries/populate

或者事件通过关联:

https://sailsjs.com/documentation/concepts/models-and-orm/associations/through-associations

【讨论】:

以上是关于如何在 Sails.js 中定义需要来自第三个模型/表的附加条件和/或数据的模型关联?的主要内容,如果未能解决你的问题,请参考以下文章

Sails Js - 防止非模型字段保存在 mongo 文档中

Sails.js 填充嵌套关联

如何在sails.js 模型中添加具有整数数据类型数组的属性?

Sails.js - 如何对具有数组类型属性的模型进行本机查询?

如何自动解析 Sails.js 路由上的模型属性?

在sails.js 中覆盖CRUD 蓝图