【发布时间】:2020-09-01 04:55:21
【问题描述】:
这是我在 mongoose 中创建的 PostSchema,我在帖子和评论中都引用了 users 表。
const PostSchema = new mongoose.Schema({
title: {
type: String,
required: true,
},
text: {
type: String,
required: true,
},
date: {
type: Date,
default: Date.now,
},
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'users',
},
comment: [
{
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'users',
},
text: {
type: String,
require: true,
},
date: {
type: Date,
default: Date.now,
},
},
],
});
我试图做的是让帖子更新 ref 上的用户元素,当我调用它时,提供用户 ID 和名称。
const posts = await Post.find().populate('user', 'name');
这适用于这个,但它对评论中的每个用户 ref 没有做同样的事情。我是不是做错了什么?
编辑:
const newComment = {
user: user._id,
text: req.body.text,
};
post.comment.unshift(newComment);
await post.save();
这是添加评论的代码,user._id是当前登录用户的objectId。
我什至尝试过制作
user: user._id,
到
user: req.user.id,
const newPost = new Post({
text: req.body.text,
title: req.body.title,
user: req.user.id,
});
await newPost.save();
这是newPost的代码,req.user.id也是当前登录的ID。
编辑:
这是用户架构
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
name: {
type: String,
required: true,
},
email: {
type: String,
required: true,
},
password: {
type: String,
required: true,
},
date: {
type: Date,
default: Date.now,
},
});
module.exports = mongoose.model('users', userSchema);
【问题讨论】:
标签: mongodb express mongoose mern