【发布时间】:2022-01-10 20:33:27
【问题描述】:
我有一个简单的控制器,可以为用户创建帖子。另一个模式链接到它。当我尝试创建新帖子时,我需要获取帖子的 ID,以便我可以将其他架构链接到它。
这是架构:
const mongoose = require("mongoose");
const User = require("./User");
const View = require("./View");
const ArticleSchema = new mongoose.Schema({
title: {
type: String,
required: true,
trim: true,
},
body: {
type: String,
required: true,
},
status: {
type: String,
default: "public",
enum: ["public", "private"],
},
user: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
},
views: {
type: mongoose.Schema.Types.ObjectId,
ref: "View",
},
createdAt: {
type: Date,
default: Date.now,
},
});
module.exports = mongoose.model("Article", ArticleSchema);
当我想链接 user 字段时很好,因为我已将其存储在内存中。
但 view 字段需要该特定文档的 postId。如果不先创建文档,我将无法获得它。
我的创建后控制器:
module.exports.createArticleController = async function (req, res) {
try {
req.body.user = req.User._id;
const article = await Article.create(req.body).exec()
res.redirect(`/${article.title}/${article._id}`);
} catch (e) {
console.error(e);
}
};
所以我的问题是,
如何在执行 model.create() 的过程中获取 id,以便我可以将视图链接到该 id。也许使用 this 运算符
我不想在创建后使用更新。
【问题讨论】:
标签: javascript node.js mongoose mongodb-query mongoose-schema