mongodb本机id上的sails.js连接表

mongodb本机id上的sails.js连接表,mongodb,sails.js,waterline,sails-mongo,Mongodb,Sails.js,Waterline,Sails Mongo,我在mongodb数据库中有两个集合,每个集合都有一个模型 应用程序模型 module.exports = { tableName: 'app', attributes: { _id : { primaryKey: true, unique: true, type: 'string', }, userId: { model: 'user

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

应用程序模型

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) {});

您需要去掉模型中的_id和id属性定义。Waterline将为您处理主键字段,并自动将其规范化为id,因此,除非您需要更改字段类型,否则可以安全地将其忽略。另外,我不确定您在id定义中添加collection和via的目的是什么,但主键永远不会是关联

否则,您的模型看起来是正确的。如果你去掉了这两个属性,事情应该会很顺利