嵌套数据中的mongo db删除密钥
Mongo数据库数据在这里我想删除report_data的密钥 因此,II将发送key = ber2,report_name =删除测试,name =新文件夹它将仅从该报告和文件夹
{
"_id" : ObjectId("6267b4554cbd527bee4c6b3a"),
"structure" : [
{
"name" : "New folder",
"values" : [
{
"report_name" : "mixll",
"report_heading" : "mixll",
"background" : "#f0f2f5",
"grid" : false,
"report_data" : {
"mixchch" : {
"datasource" : "New_DGR",
"source" : "10",
"title" : "mix chch"
}
},
"unique_report_name" : "mixll"
},
{
"report_name" : "Delete test",
"report_heading" : "Delete test",
"background" : "#f0f2f5",
"grid" : false,
"report_data" : {
"ber2" : {
"data" : null,
"datasource" : "Restest_0423",
"source" : "10",
"title" : "ber 2"
},
"piechart" : {
"data" : null,
"datasource" : "Restest_0423",
"source" : "10",
"title" : "pie chart"
},
"lnechart" : {
"data" : null,
"datasource" : "Restest_0423",
"source" : "10",
"title" : "lne chart"
}
},
"unique_report_name" : "Deletetest"
},
],
"type" : 1
},
{
"name" : "newdkdd",
"values" : [
{
"report_name" : "aldkkd",
"report_heading" : "aldkkd",
"background" : "#f0f2f5",
"grid" : false,
"report_data" : {
"sslsls" : {
"datasource" : "alias",
"source" : "3",
"title" : "sslsls"
}
},
"unique_report_name" : "aldkkd"
}
],
"type" : 1
}
],
"unique_report_id" : 986219
}
pymongo mongo询问
mycol.update_one({
"structure.name": folder_name
},
{
"$pull": {
"structure.$[structure].values": {
"report_name": report_name,
}
}},
array_filters= [
{
"structure.name": folder_name
}
],
upsert=True)
我使用上述查询来删除整个报告中, 将仅删除recort_data的键ber2。 我如何从report_data键中删除一个键,
请看看
Mongo database data here i wants to delete key of report_data
So i i will send key= ber2, report_name=Delete test, name=New folder it will delete only key ber2 from report_data of that report and folder
{
"_id" : ObjectId("6267b4554cbd527bee4c6b3a"),
"structure" : [
{
"name" : "New folder",
"values" : [
{
"report_name" : "mixll",
"report_heading" : "mixll",
"background" : "#f0f2f5",
"grid" : false,
"report_data" : {
"mixchch" : {
"datasource" : "New_DGR",
"source" : "10",
"title" : "mix chch"
}
},
"unique_report_name" : "mixll"
},
{
"report_name" : "Delete test",
"report_heading" : "Delete test",
"background" : "#f0f2f5",
"grid" : false,
"report_data" : {
"ber2" : {
"data" : null,
"datasource" : "Restest_0423",
"source" : "10",
"title" : "ber 2"
},
"piechart" : {
"data" : null,
"datasource" : "Restest_0423",
"source" : "10",
"title" : "pie chart"
},
"lnechart" : {
"data" : null,
"datasource" : "Restest_0423",
"source" : "10",
"title" : "lne chart"
}
},
"unique_report_name" : "Deletetest"
},
],
"type" : 1
},
{
"name" : "newdkdd",
"values" : [
{
"report_name" : "aldkkd",
"report_heading" : "aldkkd",
"background" : "#f0f2f5",
"grid" : false,
"report_data" : {
"sslsls" : {
"datasource" : "alias",
"source" : "3",
"title" : "sslsls"
}
},
"unique_report_name" : "aldkkd"
}
],
"type" : 1
}
],
"unique_report_id" : 986219
}
Pymongo mongo query
mycol.update_one({
"structure.name": folder_name
},
{
"$pull": {
"structure.$[structure].values": {
"report_name": report_name,
}
}},
array_filters= [
{
"structure.name": folder_name
}
],
upsert=True)
I am using above query to delete it is deleting the entire report
How can i delete only one key from the report_data key
Please take a look
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用过滤的位置操作员和ArrayFilters思考,您需要使用
report_data.ber2
指定密钥,以通过$ unset
删除相应的字段。Think with filtered positional operator and arrayFilters, you need to specify the key with
report_data.ber2
to remove the respective field via$unset
.Sample Mongo Playground