帆/水线文档中的一对多的示例代码假定主键是两个模型之间的关联(我认为) .
http://sailsjs.org/documentation/concepts/models-and-orm/associations/one-to-many
但是,我的模型有一个引用列,引用一些类似的其他值
User
{
id (primary): <int>
email: <string>
}
recordings
{
id (primary): <int>
email: <that email from user>
}
atm我正在尝试
userModel.js
{
attributes: {
email: {
type: 'string',
size: 255,
unique: true
},
},
queries: {
columnName: 'email',
model: 'recordings'
}
.....
}
}
recordingsModel.js
{
attributes: {
email: {
type: 'string',
size: 255,
},
},
queries: {
model: 'user'
}
.....
}
}
在控制器中
sails.models.user
.find()
.populate('queries')
.exec(function (err, results) {
});
但我收到错误:ER_BAD_FIELD_ERROR:'字段列表'中的未知列'__queries.queries'
有没有人有一个很好的水线中一对多关系的教程,因为那里的文档非常糟糕所以我觉得我只是不了解如何设计模型 .
1 回答
根据我的收集,您想要的是能够设置您的
userModel
和recordingsModel
模型,通过为email
提供特定值的记录,它将自动与共享该电子邮件的任何用户相关联 . 这不是Waterline(Sails ORM)支持的 .相反,您最好的选择是按照文档中的说明设置模型:
我的猜测是你试图避免查找用户ID以便将新录音与它相关联 . 如果将
email
作为userModel
的主键,则可以执行此操作;然后,当您创建新录制内容时,可以将其user
设置为电子邮件地址,然后将两者关联起来 .