创建添加到数组字段的新子项
Posted
技术标签:
【中文标题】创建添加到数组字段的新子项【英文标题】:Creating New Child Added To The Array Field 【发布时间】:2021-10-29 18:48:03 【问题描述】:我不确定这是创建对象的正确查询,因为一旦我使用我的 Postman,它就会返回 undefined。
这是我的架构。
import mongoose from 'mongoose';
const todoSchema = mongoose.Schema(
username:
type: String,
,
password:
type: String,
,
task: [
id: mongoose.Types.ObjectId,
post: String,
],
time:
type: Date,
default: Date.now,
);
const TodoModels = mongoose.model('TodoModels', todoSchema);
export default TodoModels;
这是我的邮递员。我正在使用补丁,因为我试图在现有用户上添加对象。
"task": [
"post": "task"
]
这是我添加新对象数组字段的方法。
export const addTask = async (req,res) =>
const id = req.params;
if(!mongoose.Types.ObjectId.isValid(id)) return res.status(404).json(`Invalid ID`);
const updatedPost = await TodoModels.findByIdAndUpdate(id,$push:task:
post: req.body.task.post , new: true );
res.json(updatedPost);
不幸的是,req.body.task.post
返回 undefined。
【问题讨论】:
【参考方案1】:req.body.task
是一个数组。所以你必须用req.body.task[0].post
访问post
。
const updatedPost = await TodoModels.findByIdAndUpdate(id,$push:task:post: req.body.task[0].post , new: true );
【讨论】:
以上是关于创建添加到数组字段的新子项的主要内容,如果未能解决你的问题,请参考以下文章