Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/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
Arrays 如何从json中删除空数组。我在数组中没有元素,我想删除数组。它的嵌套数组_Arrays_Node.js_Mongodb_Mongodb Query_Aggregation Framework - Fatal编程技术网

Arrays 如何从json中删除空数组。我在数组中没有元素,我想删除数组。它的嵌套数组

Arrays 如何从json中删除空数组。我在数组中没有元素,我想删除数组。它的嵌套数组,arrays,node.js,mongodb,mongodb-query,aggregation-framework,Arrays,Node.js,Mongodb,Mongodb Query,Aggregation Framework,如何在MongoDB中从JSON中删除空数组。我在对象中有多个数组 db.runCommand({ update: "table", updates: [ { q: {_id: { $in: ['id1', 'id2']}}, u: { $pull: { "a.b" : { "a.$[].b.$[].c" : { $exists: true, $size: 0 } }} } } ] }) 它只告诉空数组,但不修改

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

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

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

您几乎做到了,但需要使用$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 } }}
      }
    }
  ]
})

差不多就到了,但是需要使用$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 } }}
      }
    }
  ]
})

如果我的答案解决了您的问题,请将其标记为已接受,以便开发人员能够了解这一点,不要将时间浪费在已解决的问题上。如果我的答案解决了您的问题,请将其标记为已接受,以便开发人员能够了解这一点,不要将时间浪费在已解决的问题上。