$this->hasMany(User::className(), ['role_id' => '_id'])
в таком виде на работает. (c hasOne() тоже самое). $model->role_id = new \MongoId("$model->role_id");
, '_id' - тоже должен быть ObjectId или $model->role_id = (int) $model->role_id;
, '_id' - должен быть int.