MongoDB - 过滤和更新多嵌套数据
MongoDB - Filter and update multi nested data
我正在尝试删除一个嵌套文档。
mycol = mongodb["structure"]
mycol.update_one(
{ "name" : "New Folder" },
{"$pull" : {"structure.$.values" : {"report_name": "Area test"}}}
)
MongoDB数据:
[{
"structure": [
{
"name": "New Folder",
"values": [
{
"report_name": "Area test",
"report_heading": "Area test",
},
{
"report_name": "multi same",
"report_heading": "multi same",
},
]
}
]
}]
我正在使用上面的代码从嵌套对象中删除一个文档。但是我上面的查询不起作用。请看一下。
预期结果:
[{
"structure": [
{
"name": "New Folder",
"values": [
{
"report_name": "multi same",
"report_heading": "multi same",
},
]
}
]
}]
您的文档由 structure
数组组成。要更新 multi-nested 文档,您需要 $[<identifier>]
过滤位置运算符。
db.collection.update({
"structure.name": "New Folder"
},
{
"$pull": {
"structure.$[structure].values": {
"report_name": "Area test"
}
}
},
{
arrayFilters: [
{
"structure.name": "New Folder"
}
]
})
我正在尝试删除一个嵌套文档。
mycol = mongodb["structure"]
mycol.update_one(
{ "name" : "New Folder" },
{"$pull" : {"structure.$.values" : {"report_name": "Area test"}}}
)
MongoDB数据:
[{
"structure": [
{
"name": "New Folder",
"values": [
{
"report_name": "Area test",
"report_heading": "Area test",
},
{
"report_name": "multi same",
"report_heading": "multi same",
},
]
}
]
}]
我正在使用上面的代码从嵌套对象中删除一个文档。但是我上面的查询不起作用。请看一下。
预期结果:
[{
"structure": [
{
"name": "New Folder",
"values": [
{
"report_name": "multi same",
"report_heading": "multi same",
},
]
}
]
}]
您的文档由 structure
数组组成。要更新 multi-nested 文档,您需要 $[<identifier>]
过滤位置运算符。
db.collection.update({
"structure.name": "New Folder"
},
{
"$pull": {
"structure.$[structure].values": {
"report_name": "Area test"
}
}
},
{
arrayFilters: [
{
"structure.name": "New Folder"
}
]
})