SailsJS / Waterline:在人口稠密的协会中

时间:2016-05-25 13:05:54

标签: node.js sails.js waterline

我有三个模型:usersgroupssubscribers。通过群组订阅者模型,用户和群组之间存在多对多关系。

我希望得到用户订阅的所有群组的列表,以及所有订阅者。

// Group model
subscriber: {
  collection: 'user',
  via: 'group',
  through: 'messagegroupsubscriber'
}

// Controller
Group.find().populate('subscriber').exec(function(err, grps) [
    return res.json(grps);
});

这会返回带有订阅者的所有组 - 但我只想要订阅用户的组(在这种情况下:用户ID在订阅者属性中)。

// Assuming the user ID is 1

// What I get
[
    {
        "groupID": 1,
        "name": "First group",
        "subscriber": [
            {
                id: 1,
                name: "John"
            }
        ]
    },
    {
        "groupID": 2,
        "name": "Second group",
        "subscriber": []
    }
]

// What I WANT to get
[
    {
        "groupID": 1,
        "name": "First group",
        "subscriber": [
            {
                id: 1,
                name: "John"
            }
        ]
    }
    // no more "Second group", since user ID "1" is not within the subscribers
]

水线是否可以实现?如果是这样,怎么样? (否则我想我需要切换到Sequelize或类似的东西,因为我将来会有更复杂的查询)

0 个答案:

没有答案
相关问题