在項目中需要修改mongoDB中的一條記錄的子集屬性,查詢結果如下:
"_id" : "402885627375d527017375e46e18002520200901000000",
"create_time" : ISODate("2020-07-24T16:22:21.953+08:00"),
"data_time" : ISODate("2020-09-01T00:00:00.000+08:00"),
"gd_id" : "ADD65493-46EE-4114-BD96-C8C72318198D",
"mn" : "0152316J108001",
"mp_id" : "402885627375d527017375e46e180025",
"protocol" : "1",
"update_time" : ISODate("2020-07-24T16:22:21.953+08:00"),
"values" : [
{
"pollutant_code" : "011",
"min_value" : "4.760000",
"max_value" : "5.590000",
"avg_value" : "5.180000",
"cou_value" : null,
"outlet_standard" : "20",
"flag" : "N",
"mstatus" : "0",
"estatus" : "0",
"astatus" : "1",
"sstatus" : "0",
"cou_revised" : null,
"avg_revised" : null
},
{
"pollutant_code" : "060",
"min_value" : "37.340000",
"max_value" : "82.700000",
"avg_value" : "60.020000",
"cou_value" : "75.180000",
"outlet_standard" : "20",
"flag" : "N",
"mstatus" : "3",
"estatus" : "0",
"astatus" : "2",
"sstatus" : "0",
"cou_revised" : null,
"avg_revised" : null
}
]
}
要修改values下pollutant_code為011的flag的值。
解決方法:
db.day_water.update(
{
data_time:ISODate('2020-09-01T00:00:00+08:00'),
mn:'0152316J108002',
'values.pollutant_code':'011'
},
{
$set:{'values.$.flag':'N'}
},false,true
)