Мне нужно отправить данные в поле массива MongoDB, используя существующее поле в тех же документах.
Например, я хочу обновить следующее имя коллекции naver_fl_logs
, которое содержит следующие данные:
[{
'_id': ObjectId('5cbd2e4c6e4b1401ad2359ba'), 'goodsNo': 3, 'recentFlStart': '2019-04-01 00:00:00', 'regDtList': [], 'recentFlEnds': null
}
,{
'_id': ObjectId('5cbd2e4c6e4b1401ad2359ba'), 'goodsNo': 3, 'recentFlStart': '2019-04-02 00:00:00', 'regDtList': [], 'recentFlEnds': null
}]
до этого формата.
[{
'_id': ObjectId('5cbd2e4c6e4b1401ad2359ba'), 'goodsNo': 3, 'recentFlStart': '2019-04-01 00:00:00', 'regDtList': [{
'regDtStart':'2019-04-01 00:00:00',regDtEnd:'2019-04-04 00:00:00'
}]
, 'recentFlEnds': null
}
,{
'_id': ObjectId('5cbd2e4c6e4b1401ad2359ba'), 'goodsNo': 3, 'recentFlStart': '2019-04-02 00:00:00', 'regDtList': [{
'regDtStart':'2019-04-02 00:00:00',regDtEnd:'2019-04-04 00:00:00'
}]
, 'recentFlEnds': '2019-04-04 00:00:00'
}]
, где поля recentFlEnds
и regDtEnd
в поле regDtList
обновлены с тем же значением, однако поле regDtEnd в поле regDtList
обновлено с помощью recentFlStart
поле в тех же документах.
Я пробовал следующий код:
naver_fl_logs.update_many(
{"goodsNo":{"$in":goods_no_list}},
{"$push":{"regDtList":{"regDtStart":"$recentFlStart","regDtEnd":nowtime_str}},
"$set":{"recentFlEnds":nowtime_str}}
)
, однако только поле regDtStart
имеет значение "$ RecentFlStart" (которое является чистой строкой).