如何根据条件从 mongo 数据库中删除嵌套元素

How to delete nested element from mongo db based on conditon

{ “_id”:62749de1c511aff4354802f0 “文件名”:“使用异常检测-amazon.pdf” “标签”:[ {'entity': 'Aws', 'count': 21}, {'entity': 'Keras', 'count': 1}, {'entity': 'Amazon Ml', 'count': 1}, {'entity': 'Amazon Cloudwatch', 'count': 1} ] }

如果实体字符串长度的值小于 3,则输出为

{ “_id”:62749de1c511aff4354802f0 “文件名”:“使用异常检测-amazon.pdf” “标签”:[ {'entity': 'Keras', 'count': 1}, {'entity': 'Amazon Ml', 'count': 1}, {'entity': 'Amazon Cloudwatch', 'count': 1} ] }

这是我的文档,如果作为字符串的键值的长度小于 3,我想从标签数组中删除实体键

试试这个:

db.collection.aggregate([
   {
      $set: {
         tags: {
            $filter: {
               input: "$tags",
               cond: { $gt: [{ $strLenCP: "$$this.entity" }, 3] }
            }
         }
      }
   }
])

Mongo Playground