Sails.js按关联

时间:2015-09-17 16:27:06

标签: javascript database node.js sails.js waterline

我正在开发和使用Sails.js并使用Waterline orm for db。我正在为用户开发功能,以便彼此进行朋友请求和其他类似请求。我有以下URequest模型:

    module.exports = {

    attributes: {
        owner: {
            model: 'Person'
        },

        people: {
            collection: 'Person'
        },

        answers: {
            collection: 'URequestAnswer'
        },

        action: {
            type: 'json'    //TODO: Consider alternative more schema consistent approach.
        }
    }
};

基本上,所有者是与提出请求的人员的关联,而人员是与请求所针对的所有人员的一对多关联。到目前为止还不错。

现在我想拥有一个控制器,它返回涉及某个用户的所有请求,意味着用户在所有者字段或人员中的所有请求。我如何查询"给我所有与人P" ?换句话说,我怎么知道哪些URequest模型与某个人有关联?

我试过这样的事情:

getRequests: function (req, res) {
    var personId = req.param('personId');
    URequest.find().where({
    or: [
        {people: [personId]},   //TODO: This is not correct
        {owner: personId}
        ]
}).populateAll().then(function(results) {
        res.json(results);
    });

},

所以我知道如何做"或"部分但我如何检查personId是否在人群中?我知道我应该能够以某种方式查看联合表,但我不知道怎样也无法从与我的情况相关的Waterline文档中找到更多。此外,我试图保持这种数据库不可知,但我现在使用的是MongoDB,但稍后可能会使用Postgres。

0 个答案:

没有答案