Когда я создаю нового пользователя с моей моделью пользователя, он создает новый идентификатор объекта для этого пользователя. Я хочу, чтобы этот же идентификатор пользователя также использовался в моей модели профиля через user: someUserId
, когда пользователь создает свой профиль.
У меня есть модель профиля с объектом, ссылающимся на мою модель пользователя через Schema.Types.ObjectId, я также попытался заполнить.
Когда создается профиль, я хочу, чтобы он также показывал user: usersID, но когда я создаю профиль, он имеет только идентификатор профиля.
const profileSchema = new Schema({
user: {
type: Schema.Types.ObjectId,
ref: "User"
},
username: {
type: String,
required: true,
unique: true,
minlength: 2,
maxlength: 50
},
email: {
type: String,
minlength: 2,
maxlength: 50,
required: true,
unique: true
},
gender: {
type: String
},
location: {
type: String
},
bio: {
type: String,
minlength: 2,
maxlength: 255
},
favoriteBands: [nameSchema],
favoriteGenres: [nameSchema],
instruments: [instrumentSchema], // schema
experience: [experienceSchema], // schema
education: [educationSchema], // schema
social: socialSchema,
dateCreated: {
type: Date,
default: Date.now
}
});
const Profile = mongoose.model("Profile", profileSchema);
module.exports = Profile;
Вместо того, чтобы запрашивать электронную почту в методе findOne, я хочу вместо этого запросить идентификатор пользователя.
router.post("/", auth, async (req, res, next) => {
const { error } = validateProfile(req.body);
if (error) return res.status(400).send(error.details[0].message);
let profile = await Profile.findOne({ email: req.body.email });
if (profile) {
next(errors.processReq);
} else {
profile = new Profile({ ...req.body });
}
await profile.save();
res.json(profile);
});