嘿,刚刚开始使用Sails js和mongoDB,我有点困惑。
我有两个具有多对多关系的模型:
user.js的
module.exports = {
attributes: {
username: 'STRING',
password: 'STRING',
doors:{
collection: 'door',
via: 'users',
}
}
};
和Door.js
module.exports = {
attributes: {
name: 'STRING',
users:{
collection: 'user',
via: 'doors'
}
}
};
这很好用,我可以创建一个用户和一个门,并将一个与另一个相关联。但是我希望在联接中有另一个字段,一个到期日期(假设用户只能在特定日期之前访问特定的门)。
我将如何做到这一点?
答案 0 :(得分:1)
您需要创建多对多的到关联。但是到目前为止还没有正式支持。
但您可以手动执行此操作。
现在,在这个例子中,为用户获取所有门可能有点困难,反之亦然,因为你必须进行第二次查找。但是,您可以使用此设置执行以下操作:
UserDoors
.find()
.where({expires:{'<':new Date()}})
.populate('doors')
.populate('users')
.exec(/*....*/)
你的模特
User.js
module.exports = {
attributes: {
username: 'STRING',
password: 'STRING',
doors:{
collection: 'userDoors',
via: 'users',
}
}
};
userDoors.js
module.exports = {
attributes: {
doors:{
model: 'door'
},
users:{
model: 'user'
},
expires: 'datetime'
}
};
and Door.js
module.exports = {
attributes: {
name: 'STRING',
users:{
collection: 'userDoors',
via: 'doors'
}
}
};
对sails.js many to many through
进行谷歌搜索,以帮助您找到所需内容。