J'ai beaucoup de documents dans une collection. La structure de chacun des documents à l'intérieur de la collection est comme suit:multi mise à jour une clé le long des documents d'une collection en utilisant pymongo
{
"_id" : ObjectId(....),
"valor" : {
"AB" : {
"X" : 0.0,
"Y" : 142.6,
},
"FJ" : {
"X" : 0.2,
"Y" : 3.33
....
La collection compte actuellement environ 200 documents et je l'ai remarqué que l'une des clés à l'intérieur valor
a le mauvais nom. Dans ce cas, nous dirons que "FJ" sera "JOF" dans tous les documents de la collection.
Je suis assez sûr qu'il est possible de changer la clé dans tous les docs en utilisant la fonction update
de pymongo. Le problème auquel je suis confronté est que lorsque je visite le document en ligne disponible https://docs.mongodb.com/v3.0/reference/method/db.collection.update/ explique seulement comment changer les valeurs (que je voudrais rester comme elles sont actuellement et ne changer que les clés).
Voici ce que j'ai essayé:
def multi_update(spec_key,key_updte):
rdo=col.update((valor.spec_key),{"$set":(valor.key_updte)},multi=True)
return rdo
print(multi_update('FJ','JOF'))
Mais sorties name 'valor' is not defined
. Je pensais que je devrais utiliser valor.specific_key pour accéder au json correspondant
comment puis-je mettre à jour une clé seulement le long des docs de la collection?