【发布时间】:2020-11-09 17:51:33
【问题描述】:
我正在研究从数据库中获取所有已注册配置文件的配置文件路由。 .我只想从用户模型中填充“名称”和“头像”字段。 .populate('model',['name','avatar']) 不工作。
我要填充的路线:
router.get("/", async (req, res) => {
try {
const profiles = await Profile.find().populate("User", ["name", "avatar"]);
res.send(profiles);
} catch (error) {
console.log(error.message);
res.status(500).send("Server Error !");
}
});
用户模型
const mongoose = require("mongoose");
const UserSchema = new mongoose.Schema({
name: {
type: String,
required: true,
},
email: {
type: String,
required: true,
unique: true,
},
password: {
type: String,
required: true,
},
avatar: {
type: String,
},
date: {
type: Date,
default: Date.now,
},
});
module.exports = User = mongoose.model("User", UserSchema);
个人资料模型
const mongoose = require("mongoose");
let requiredString = { type: String, required: true };
const ProfileSchema = new mongoose.Schema({
user: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
},
githubusername: String,
status: requiredString,
skills: [requiredString],
experience: [
{
title: requiredString,
company: requiredString,
location: String,
from: {
type: Date,
required: true,
},
to: Date,
current: {
type: Boolean,
default: false,
},
description: String,
},
],
date: {
type: Date,
default: Date.now,
},
});
module.exports = Profile = mongoose.model("Profile", ProfileSchema);
输出未填充名称和头像!
【问题讨论】:
标签: node.js mongodb express mongoose mongoose-populate