我正在使用带有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
我试图遵循这些建议,但似乎并没有解决我的问题。有没有人找到类似问题的解决方案?
答案 0 :(得分: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,
});