Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 是否从mongoose中的内部架构中删除对象?_Mongodb_Mongoose_Mongodb Query_Mongoose Schema - Fatal编程技术网

Mongodb 是否从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

如何从mongoose的内部模式中删除对象? 我尝试从假日模式中删除注释,这是假日模式:

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
时,它实际上已被删除,您的记录已被更新。您可以签入数据库。