Mongodb 是否从mongoose中的内部架构中删除对象?
如何从mongoose的内部模式中删除对象? 我尝试从假日模式中删除注释,这是假日模式:Mongodb 是否从mongoose中的内部架构中删除对象?,mongodb,mongoose,mongodb-query,mongoose-schema,Mongodb,Mongoose,Mongodb Query,Mongoose Schema,如何从mongoose的内部模式中删除对象? 我尝试从假日模式中删除注释,这是假日模式: const holidaySchema = new mongoose.Schema( { comments: [commentSchema], }, ) const Holiday = mongoose.model("Holiday", holidaySchema); export default Holiday; 这是注释模式: const commentSc
const holidaySchema = new mongoose.Schema(
{
comments: [commentSchema],
},
)
const Holiday = mongoose.model("Holiday", holidaySchema);
export default Holiday;
这是注释模式:
const commentSchema = new mongoose.Schema(
{
action: { type: String },
time: { type: String },
name: { type: String },
image: { type: String },
content: { type: String },
rating: { type: Number },
},
{
timestamps: true,
}
);
我尝试通过以下方式从holidaySchema中删除特定注释:
holidayRouter.delete(
"/:id/comments/:commentId",
isAuth,
expressAsyncHandler(async (req, res) => {
const holiday = await Holiday.updateOne(
{ _id: req.params.id },
{ $pull: { comments: { _id: req.params.commentId } } }
);
if(holiday){
console.log(holiday);
}
})
);
控制台:
这是行不通的,你知道我做错了什么,或者我应该怎么做吗
谢谢查询看起来不错,请确保收集了ids文档,holiday中的控制台是什么?控制台显示了一个待定的承诺,您能找到问题吗?显然,它将显示pending,因为您在api中没有返回任何响应,我谈论的是这个
console.log(假日)代码>,您可以在正在运行的节点服务器控制台中看到它。那么我应该返回什么?当您看到n修改:1
时,它实际上已被删除,您的记录已被更新。您可以签入数据库。