sails.js在mongodb本地id上连接表

时间:2014-09-26 09:46:35

标签: mongodb sails.js waterline sails-mongo

我在mongodb数据库中有两个集合,每个集合都有模型

App Model

module.exports = {

    tableName: 'app',
    attributes: {
        _id : {
            primaryKey: true,
            unique: true,
            type: 'string',
        },
        userId: {
            model: 'user'
        },
        title: {
            type: 'string',
            required: true,
            unique: true,
        },
        createdDate : 'string'
    },
};

和用户模型

module.exports = {

    tableName: 'user',
    attributes: {
        id : {
            primaryKey: true,
            unique: true,
            type: 'string',
            collection: "app",
            via : "userId"
        },
        password: {
            type: 'string',
            required: true
        },
        apps : {
            collection: "app",
            via : "userId"
        }
    },

};

当我使用数值加入此集合时,它工作正常,但是当我尝试使用mongodb本地id对象时,我得到空结果

我如何调用加入查询

User.find().populate('apps').exec(function(err, result) {});

1 个答案:

答案 0 :(得分:0)

您需要摆脱模型中的_idid属性定义。 Waterline将自动处理主键字段(将它们标准化为id),因此除非您需要更改字段类型,否则可以安全地将它们排除在外。另外,我不确定将collectionvia添加到id定义是什么意思,但主键永远不会成为关联。

否则,您的模型看起来是正确的。如果你摆脱这两个属性,事情应该可以正常工作。