我想实现的功能,在前端的用户写多少职位,他想插入到数据库..他可以写1,5,10,15,..多达50个相同的职位。
然后,这些帖子在数据库中是相同的,只是这个手动生成的_id不同。
起初我以为这件事可以这样做:
exports.addPost = async (req: any, res: any) => {
try {
const newPost = new Post({
title: req.body.title,
description: req.body.description,
author: req.body.author,
});
for (let i: number = 0; i < 5; i++) {
await newPost .save();
}
res.status(201).json(newContainer);
} catch (err) {
res.status(400).json(err);
}
};
发布架构:
const PostSchema = new mongoose.Schema({
title: { type: String, required: true },
description: { type: String, required: true },
author: {
type: Schema.Authors.ObjectId,
ref: "Authors",
required: true,
},
});
module.exports = mongoose.model("Posts", PostSchema);
但我不确定,如果这真的是要走的路..什么是一些好的做法,这(假设数字5在for循环将进入req.body..所以从用户输入。
谢谢
1条答案
按热度按时间0md85ypi1#
您可以只使用下列程式码:
model.create
不接受向其传递一个(新)文档数组。通过将一个大小为5(或取决于用户输入)的新数组Map到您的自定义文档并将其传递给create函数,将导致创建多个文档。一个巨大的好处是,您只需执行一个数据库调用(并等待它)。