创建包含带有猫鼬细分的文档
我正在尝试创建我的MongoDB Atlas数据库,但是子记录值没有通过。我应该以某种方式循环吗?找不到任何解决方案。谢谢
Postman请求:
{
"name" : "New Avengers",
"items": [
{"itemName": "Iron Man"},
{"itemName": "Thor"}
],
"tasks": [
{"taskName": "Call Avengers"},
{"taskName": "Watch out for Loki"}
]
}
数据库记录:
model-> project.model.js
const { Schema, default: mongoose, mongo } = require('mongoose');
const itemsSchema = new Schema({
itemName: String,
mainItem: { type: Boolean, default: false }
})
const tasksSchema = new Schema({
taskName: String,
columnLabel1: String,
columnLabel2: String,
})
const projectSchema = new Schema({
name: {
type: String,
required: [true, 'Title is required!'],
unique: true
},
items: [itemsSchema],
tasks: [tasksSchema]
},{
timestamps: true
});
const Project = mongoose.model("Project", projectSchema);
module.exports = Project;
路线 - > project.js
const router = require('express').Router();
let Project = require('../models/project.model');
// Create new Project
router.route('/add').post( async (req, res) => {
const newProject = new Project({
name: req.body.name,
items: [{itemName: req.body.itemName}],
tasks: [{taskName: req.body.taskName}]
});
try {
await newProject.save();
} catch(err) {
res.status(400).json(err);
}
});
module.exports = router;
I am trying to create my MongoDB Atlas database but the subdocument values are not coming through. Am i supposed to loop through them somehow ? Can't find any solutions. Thanks
Postman request:
{
"name" : "New Avengers",
"items": [
{"itemName": "Iron Man"},
{"itemName": "Thor"}
],
"tasks": [
{"taskName": "Call Avengers"},
{"taskName": "Watch out for Loki"}
]
}
Database Record :
Model-> project.model.js
const { Schema, default: mongoose, mongo } = require('mongoose');
const itemsSchema = new Schema({
itemName: String,
mainItem: { type: Boolean, default: false }
})
const tasksSchema = new Schema({
taskName: String,
columnLabel1: String,
columnLabel2: String,
})
const projectSchema = new Schema({
name: {
type: String,
required: [true, 'Title is required!'],
unique: true
},
items: [itemsSchema],
tasks: [tasksSchema]
},{
timestamps: true
});
const Project = mongoose.model("Project", projectSchema);
module.exports = Project;
Route -> project.js
const router = require('express').Router();
let Project = require('../models/project.model');
// Create new Project
router.route('/add').post( async (req, res) => {
const newProject = new Project({
name: req.body.name,
items: [{itemName: req.body.itemName}],
tasks: [{taskName: req.body.taskName}]
});
try {
await newProject.save();
} catch(err) {
res.status(400).json(err);
}
});
module.exports = router;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
从请求对象中,没有
taskname
和itemName
字段。newProject
变量应为:哪个
项目
和任务
是从req.body
收到的数组。From the request object, there are no
taskName
anditemName
fields. ThenewProject
variable should be:which
items
andtasks
are the arrays received from thereq.body
.