【问题标题】:How to remove empty array from json.I have no element in array , i want to remove array.Its nested array如何从 json 中删除空数组。我在数组中没有元素,我想删除数组。它的嵌套数组
【发布时间】:2020-01-02 18:42:39
【问题描述】:

如何从 MongoDB 中的 JSON 中删除一个空数组。我在对象中有多个数组。

db.runCommand({
  update: "table",
  updates: [
    {
      q: {_id:  { $in: ['id1', 'id2']}},
      u: {
        $pull: { "a.b" : { "a.$[].b.$[].c" : { $exists: true, $size: 0 } }}
      }
    }
  ]
})

它只告诉空数组,但不修改它。

【问题讨论】:

  • 如果我的回答解决了您的问题,请将其标记为已接受,以便开发人员能够弄清楚这一点,并且不要浪费时间解决已解决的问题。

标签: arrays node.js mongodb mongodb-query aggregation-framework


【解决方案1】:

你快到了,但你需要使用 $unset 而不是 $pull,因为 pull 只是从数组中删除数据,但 unset 会删除数组本身。

db.runCommand({
  update: "table",
  updates: [
    {
      q: {_id:  { $in: ['id1', 'id2']}},
      u: {
        $unset: { "a.b" : { "a.$[].b.$[].c" : { $exists: true, $size: 0 } }}
      }
    }
  ]
})

【讨论】:

    猜你喜欢
    • 2022-07-19
    • 2018-08-29
    • 2013-11-22
    • 2021-12-11
    • 2019-01-25
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多