【问题标题】:Deleting an item from a MongoDB document从 MongoDB 文档中删除项目
【发布时间】:2022-01-05 23:19:51
【问题描述】:

我正在使用 Node.js。 我得到了这份文件:

   {
   users: [ '614e000c826b2308ec49508d', '614e0021826b2308ec49508e' ],
   _id: 61d5fe6af420232658ffe131,
   name: 'Standard',
   __v: 0
   }

我分配给变量groupToEdit

我正在尝试使用这一行删除 users 数组中的一个元素:

    await groupToEdit.updateOne(
      { _id: '61d5fe6af420232658ffe131' },
      { $pull: { 'users': '614e000c826b2308ec49508d' } }
    )

但没有任何内容被删除。 我做错了什么?

【问题讨论】:

  • _idupdateOne() 中应该是"_id"
  • 谢谢,但什么也没有。

标签: node.js mongodb


【解决方案1】:

使用这种风格:

await yourCollection.updateOne({
  _id: mongoose.Types.ObjectId('61d5fe6af420232658ffe131')}, {
  $pull: { 'users': '614e000c826b2308ec49508d' }
});

您的问题是 mongoDB 将 _id 存储为 ObjectId,而您将其作为 string 传递。您传递的 id 的类型很重要。

【讨论】:

  • 谢谢。使其工作的另一项更正是在集合上而不是在文档上调用“updateOne”。请将其编辑为您的答案,以便我将其标记为已接受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2013-06-08
  • 2020-11-21
相关资源
最近更新 更多