У меня есть коллекция в mongodb, и я хочу переименовать некоторые поля в названия.Моя коллекция выглядит так:
{
"_id": "",
"user": "5a02d87ac12d314721bd9a15",
"item": {
"5b20db50a32c0e02693ffad6": {
"item_value": [{
"timepstamp": "",
"value": 0.2
}, {
"timepstamp": "",
"value": 0.8
}, {
"timepstamp": "",
"value": 0.9
}]
},
"843ujsafu88gfs88987898f": {
"item_value": [{
"timepstamp": "",
"value": 0.2
}, {
"timepstamp": "",
"value": 0.8
}, {
"timepstamp": "",
"value": 0.9
}]
}
}
}
Я хочу переименовать "5b20db50a32c0e02693ffad6"
и "843ujsafu88gfs88987898f"
, которые являются ключами после элемента с новыми значениями, скажем, "12345x"
и "12345y"
Как я могу выполнить этот запрос в пимонго?Я могу получить значение из коллекции с помощью следующего кода:
db = client['db']
collection = db['col']
res = collection.find({})
for item in res:
items= item["item"]
for key in items:
print (key)
## collection.update({}, {$rename: {item["item"][key]: item["item"][new_item_id]}}, False, True)
Этот код возвращает ключи, которые я хочу переименовать.Как я могу это сделать?
РЕДАКТИРОВАТЬ: Я пытался использовать обновление коллекции и метод переименования.Кажется, это не работает.Как я могу изменить только это поле и как я буду правильно использовать пимонго здесь?
EDIT2: В моем случае мне нужно сделать что-то подобное:
_id = res['_id']
item.pop('_id') # this is imp
_user = item['user']
item.pop('user') # this is imp
collection.update({'_id': _id, 'user': _user }, {$set: item})