如何根据条件从 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] }
}
}
}
}
])
{ “_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] }
}
}
}
}
])