MongoDB:如何从数组中的所有对象中删除属性?

问题描述 投票:0回答:1

我想取消设置 MongoDB 中对象数组中所有项目的属性。

游乐场链接


说明:

假设我在文档中有一个具有以下结构的对象数组:

{
    "key": 1,
    "questions": [
      {
        "text": "Q1",
        "explanation": "Howdy?"
      },
      {
        "text": "Q2",
        "explanation": "Pizza"
      }
    ]
  },

我想从问题数组中的所有问题对象中删除属性“解释”。

我怎样才能实现这一目标?

我希望像下面这样的东西会起作用:

db.collection.update({},
{
  $unset: {
    "questions.explanation": 1
  }
})

但是好像没有效果。

mongodb mongodb-query
1个回答
0
投票

您需要

$[]
所有位置运算符来删除数组中所有元素的字段。

db.collection.update({},
{
  $unset: {
    "questions.$[].explanation": 1
  }
})

演示@Mongo Playground

© www.soinside.com 2019 - 2024. All rights reserved.