Javascript 如何在join sails js中添加另一个字段

Javascript 如何在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

嘿,大家刚刚开始使用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'
    }
  }
};
这很好,我可以创建一个用户和一个门,并将一个与另一个相关联。然而,我希望在加入中有另一个字段,到期日(比如说用户在特定日期之前只能访问特定的门)


我该怎么做呢?

您需要通过关联创建多对多。然而,到目前为止,他们还没有得到官方的支持

但是,您可以手动执行此操作

现在,在这个例子中,为一个用户获取所有的门有时可能有点困难,反之亦然,因为您必须进行第二次查找。但是,您可以使用此设置执行以下操作:

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'
    }
  }
};