'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
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|


