Javascript 如何在join sails js中添加另一个字段
嘿,大家刚刚开始使用Sails js和mongoDB,我有点困惑 我有两个具有多对多关系的模型: User.jsJavascript 如何在join sails js中添加另一个字段,javascript,mongodb,sails.js,nosql,Javascript,Mongodb,Sails.js,Nosql,嘿,大家刚刚开始使用Sails js和mongoDB,我有点困惑 我有两个具有多对多关系的模型: User.js module.exports = { attributes: { username: 'STRING', password: 'STRING', doors:{ collection: 'door', via: 'users', } } }; 和Door.js module.exports = { attr
module.exports = {
attributes: {
username: 'STRING',
password: 'STRING',
doors:{
collection: 'door',
via: 'users',
}
}
};
和Door.js
module.exports = {
attributes: {
name: 'STRING',
users:{
collection: 'user',
via: 'doors'
}
}
};
这很好,我可以创建一个用户和一个门,并将一个与另一个相关联。然而,我希望在加入中有另一个字段,到期日(比如说用户在特定日期之前只能访问特定的门)
我该怎么做呢?您需要通过关联创建多对多。然而,到目前为止,他们还没有得到官方的支持 但是,您可以手动执行此操作 现在,在这个例子中,为一个用户获取所有的门有时可能有点困难,反之亦然,因为您必须进行第二次查找。但是,您可以使用此设置执行以下操作:
UserDoors
.find()
.where({expires:{'<':new Date()}})
.populate('doors')
.populate('users')
.exec(/*....*/)
通过在谷歌上搜索
sails.js多对多,也可以帮助你找到你要找的东西。发生了一些有趣的事情,我实施了你的建议,它与sails磁盘适配器配合得很好,但是当切换到sails mongo适配器时,sail似乎再也看不到这种关系了。mongodb有任何限制吗?我注意到它对id列使用了一种特殊的格式,但已经考虑到了这一点。这很奇怪。我会确认你所有的代码看起来都不错,并检查你查询的数据以确保它被正确插入。我在mongo中有一个这样的关系设置,它很有效。
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'
}
}
};