首页 文章

Loopback mongodb-connector principalId存储为字符串

提问于
浏览
3

我正在使用带有mongodb连接器的Loopback . 在执行查询以查找分配给用户的所有角色时,响应不返回任何内容 .

// Find all users
$scope.displayUsers = [];
$scope.loading = true;
$scope.users = User.find({
        include: ['roles']
}, function() {
    $scope.displayUsers.concat($scope.users);
    $scope.loading = false;
});

我已将其缩小为principalId,在Rolemapping模型中存储为字符串,而userId的类型为ObjectId . 当我在我的数据库中手动更改principalId类型ObjectId时,查询似乎有效 .

我在这里发现了类似的问题:https://github.com/strongloop/loopback/issues/676

我试图按照建议,但它似乎没有解决我的问题 . 有没有人找到类似问题的解决方案?

1 回答

  • 0

    此问题已在issue #1441中报告 . 我找到了一个解决方法:

    RoleMapping.belongsTo(User);
    User.hasMany(RoleMapping, {foreignKey: 'principalId'});
    Role.hasMany(User, {through: RoleMapping, foreignKey: 'roleId'});
    
    var ObjectID = RoleMapping.getDataSource().connector.getDefaultIdType();
    RoleMapping.defineProperty('principalId', {
      type: ObjectID,
    });
    

相关问题