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

标签 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 } }}
      }
    }
  ]
})

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

最佳答案

你已经快到了,但是你需要使用$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 } }}
      }
    }
  ]
})

关于arrays - 如何从 json 中删除空数组。我数组中没有元素,我想删除数组。它的嵌套数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57711010/

相关文章:

c++ - 添加函数数组并随机选择其中一个

javascript - CkEditor 无法设置未定义的属性 'dir'

node.js - 有没有办法用restify在控制台中记录每个请求?

node.js - Node.io 没有抛出错误?

mongodb - Mongo::OperationFailure,数据库命令 'filemd5' 失败:(errmsg:'异常:已请求最佳猜测计划,但需要扫描和排序)

json - 播种 Node/MongoDB 应用程序的最佳方法是什么?

php - 根据重复值对 PHP 数组进行排序

javascript - 收集深层嵌套数据的平面数组

php - 如何将字符串数组转换为 PHP 中的关联数组?

javascript - 模型未保存到 MongoDB