我正在一个配置文件路线上工作,从数据库中获取所有注册的配置文件。 我只想从用户模型中填充“姓名”和“头像”字段。 。Populat('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);
输出没有填充姓名和头像!
按照下面的方法试一试。
router.get("/", async (req, res) => {
try {
const profiles = await Profile.find().populate({path:"User",select: {'name', 'avatar'} });
res.send(profiles);
} catch (error) {
console.log(error.message);
res.status(500).send("Server Error !");
}
});