微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从数组内的对象中删除空字符串和数组? MongoDB整合

如何解决如何从数组内的对象中删除空字符串和数组? MongoDB整合

我想删除文档中的空字符串和空数组。有没有办法使用MongoDB聚合框架做到这一点?这是一个传入文档的示例:

"item": [{
    "array_objects":[{
        "text": '',"second_text": '',"empty_array": [],"empty_array_2":[],}]
}]

解决方法

如果要投影所有非空字符串或空数组的字段,请使用$filter

您可以尝试以下聚合查询:

db.collection.aggregate([
  {
    $unwind: "$item"
  },{
    $unwind: "$item.array_objects"
  },{
    $project: {
      item: {
        $arrayToObject: {
          $filter: {
            input: {
              $objectToArray: "$item.array_objects"
            },cond: {
              $and: [
                {
                  $ne: [
                    "$$this.v",""
                  ]
                },{
                  $ne: [
                    "$$this.v",[]
                  ]
                }
              ]
            }
          }
        }
      }
    }
  }
])

MongoDB playground

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。