MongoDB修改子集(集合)中某個字段的屬性值


 在項目中需要修改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
)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM