Mongoose:根据 ID 从数组中删除对象(强制转换错误)

2023-12-21

我有一个看起来像这样的模型:

mongoose.Schema({
  username: String,
  posts: [{ type: Schema.Types.ObjectId, ref: 'Post' }]
});

我有一个端点,我想传递一个 ObjectID:

app.delete('/post', function(req, res) {
  User.findOne({ _id: req.user._id}, function(err, result) {
    result.pull({ _id: req.body.post_id });
  });
});

感觉应该可以工作,但我收到此错误:

CastError: Cast to ObjectId failed for value "[object Object]"

我究竟做错了什么?


如果你想从数组中删除一个元素,请使用这个

User
.update( 
  {_id: req.user._id}, 
  { $pull: {posts: req.body.post_id } } 
)
.then( err => {
  ...
});

这里的文档 https://docs.mongodb.org/manual/reference/operator/update/pull/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mongoose:根据 ID 从数组中删除对象(强制转换错误) 的相关文章

随机推荐

  • 反应 this.props 未定义或空对象

    构建一个小型反应应用程序 将地理位置 由浏览器确定为子组件作为道具 传递 第一个组件 App jsx import React Component from react import DateTime from components dat
  • 从 Struts1 迁移到 Struts2 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的应用程序位于 Struts1 中 并且我在所有操作中都使用了 Dispatch 操作 现在请告诉我如何转换到 struts 2 以
  • Visual Studio 2012 Express 在格式文档命令上挂起并显示消息“等待后台操作完成”[重复]

    这个问题在这里已经有答案了 这件事是几天前才开始的 每次我使用 Ctrl K D 格式化文档时 VS 都会挂起并显示该消息 似乎由于某种原因 运行格式命令花费了相当长的时间 20 秒左右 有时在较大的文档上需要更长的时间 没有安装任何新的加
  • Rails 错误 - 无法加载此类文件 -- aws-sdk (您可能需要安装 aws-sdk gem)

    我有一个 RoR 应用程序 可以通过回形针和亚马逊 s3 上传图像 一切都工作正常 直到我决定将路由从 myapp com id 更改为 myapp com model name 现在我收到以下错误 LoadError cannot loa
  • 无法绑定多部分标识符[重复]

    这个问题在这里已经有答案了 可能的重复 无法绑定多部分标识符 https stackoverflow com questions 2531924 the multi part identifier could not be bound 这是
  • 在android应用程序中连接oracle

    我正在做多媒体应用 我的问题是我想通过 JDBC 将 Oracle 数据库连接到我的应用程序 每当我尝试连接 jdbc 驱动程序时 它都会显示 Dxwarning 忽略匿名内部类的 InnerClasses 属性 oracle jdbc p
  • 什么可以防止任何恶意软件在 ARM TrustZone 中引发 SMC 异常?

    我正在阅读有关 ARM TrustZone 的内容 我读到 当普通世界想要来自安全世界的功能时 他们会引发 SMC 异常 从而将数据传输到安全世界 我不明白的是 是什么阻止了任何恶意代码引发 SMC 异常 如果任何未经授权的软件都可以导致转
  • 如何让 SwiftUI 列表自动滚动?

    当向 ListView 添加内容时 我希望它自动向下滚动 我正在使用 SwiftUIList and a BindableObject作为控制器 新数据正在添加到列表中 List chatController messages id sel
  • 是否可以同时在多个画布上绘图?

    我所有的画布绘制函数都是这样开始的 function drawMe var canvas document getElementById canvas id var ctx null ctx canvas getContext 2d 但是我
  • WScript.Shell 在 FireFox 中不起作用

    我有以下 JavaScript 代码 实际上我必须在客户端启动一个exe function executeCommands var commandtoRun C WINDOWS notepad exe var oShell new Acti
  • 按自定义排序顺序对 jQuery 中的 Div 进行排序

    我正在尝试重新排序标签的子元素input通过比较 它们的类别属性对应于 Javascript 中的类别顺序 多变的category sort order 然后我需要删除其类别属性的div 没有出现在category sort order 预
  • 如何动态合并android表格布局中一个单元格中的行?

    如何通过表格布局在 android 中获得以下功能 如图所示 我需要将两个单元格合并第 5 行 第 1 列 and 行 6 列 1动态地 我必须替换那里的一张图像 我怎样才能实现这个目标 感谢您的回答 使用 GridLayout 而不是 T
  • 当用户切换电视源时在应用程序上管理 GCKDevices

    ios的Google Chromecast api有以下设备发现方法 void deviceDidComeOnline GCKDevice device manipulate UI self tableView reloadData voi
  • 从 Jenkins 管道中的 shell 步骤访问 Groovy 变量

    使用Jenkins 2 x 中的管道插件 https jenkins io doc book pipeline overview 我如何访问在阶段或节点级别的某个位置定义的 Groovy 变量 sh step 简单的例子 node stag
  • Angular JS ng-include 绑定问题

    我使用模板文件创建了一个寻呼机小部件 我在 HTML 页面中使用了两次 我有一个选择 转到页面 选项以及上一页和下一页的链接 问题是 当我使用选择框更新当前页面 然后使用上一页和下一页链接时 当前页面会更新 但选择框不会更新 请告诉我我做错
  • 类型别名和自引用

    例如 单链表节点可能定义如下 namespace example part1 class node node next int value 假设我们只有一个整数列表 此类允许有一个指向其自身类型的成员 因为无论底层数据结构的大小如何 指针都
  • Delphi 2009 函数被链接器消除

    我想使用该功能DateTimeToStr在调试项目时 我想使用评估 修改窗口或监视窗口 这总是会导致错误 函数被链接器消除 我确保该函数被项目使用 我还在我想要调试的函数中显式放置了一个调用 我还关闭了优化并重新编译了整个项目 我做了以下程
  • Android studio 和设备外部

    是否可以在 android studio 中使用外部设备模拟应用程序 我有一个设备连接到计算机 但是当您运行该应用程序时 它无法识别该设备 注意 接受未知来源的模式和调试模式已激活 转到模块的运行配置并更改 在那里 您可以选择要在模拟器 设
  • 使用深度学习突出显示句子中的重要单词

    我试图突出显示 imdb 数据集中的重要单词 这些单词最终有助于情感分析预测 数据集如下 X train 作为字符串的评论 Y train 0 或 1 现在 在使用 Glove 嵌入来嵌入 X train 值后 我可以将其输入神经网络 现在
  • Mongoose:根据 ID 从数组中删除对象(强制转换错误)

    我有一个看起来像这样的模型 mongoose Schema username String posts type Schema Types ObjectId ref Post 我有一个端点 我想传递一个 ObjectID app delet