'Empty object returned after populate mongoose

I have really weird error. When I populate user model and put in populate function technologies field it returns empty object, otherwise all user info is returned.

The code:

export const getUserInfo: RequestHandler = (req, res, next): void => {
  let admin_username = "Admin";
  UserModel.findOne({ username: admin_username })
    .populate(["achievements", "services", "technologies"])
    .exec()
    .then((user) => res.json(user))
    .catch((err) => res.json(err));
};

Technology schema and model

const technologySchema = new mongoose.Schema<Technology>({
    icon: String,
    name: String
})

export default mongoose.model<Technology>("Technology", technologySchema);

User schema and model

const userSchema = new mongoose.Schema({
    username: {
        type: String,
        required: true,
        unique: true
    },
    password: String,
    about: String,
    en: String,
    email:String,
    resetPasswordToken: String,
    resetPasswordExpires: Date,
    fbLink: String,
    fbDesc: String,
    igLink: String,
    igDesc: String,
    achievements: [ 
        {
            type: mongoose.Schema.Types.ObjectId,
            ref: "Achievement"
        } 
    ],
    services: [ 
        {
            type: mongoose.Schema.Types.ObjectId,
            ref: "Service"
        } 
    ],
    technologies: [ 
        {
            type: mongoose.Schema.Types.ObjectId,
            ref: "Technology"
        } 
    ]
});
userSchema.plugin(passportLocalMongoose);
export default mongoose.model<User>("User", userSchema);

With technologies

with technlogies

Without technologies without technologies



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source