La table a deux clés: filename (clé de partition) et eventTime (clé de tri).
Je souhaite mettre à jour eventTime pour certains filename . J'ai essayé put_item () et update_item () en envoyant le même nom de fichier avec le nouvel eventTime mais ces fonctions ajoutent un nouvel élément au lieu de mise à jour.
Que dois-je utiliser à cette fin?
3 Réponses :
Vous ne pouvez pas. Puisqu'il fait partie de l'index, le champ est protégé. Ce que vous devez faire pour supprimer l'élément et l'ajouter à nouveau avec la nouvelle clé de tri.
Voir https://docs.aws.amazon.com/amazondynamodb /latest/APIReference/API_AttributeValueUpdate.html
Dans DynamoDB, vous pouvez effectuer une mise à jour conditionnelle sur un élément existant (insérer une nouvelle paire nom-valeur d'attribut si elle n'existe pas, ou remplacer une paire nom-valeur existante si elle a certaines valeurs d'attribut attendues). Reportez-vous à la documentation officielle ici: https://docs.aws.amazon.com/amazondynamodb/latest/ APIReference / API_UpdateItem.html
Vous pouvez également envisager d'utiliser les clés de tri de la bonne manière. Veuillez consulter la documentation suggérée ici: https://docs.aws.amazon.com/ amazondynamodb / latest / developerguide / bp-sort-keys.html
Selon DynamoDB / AttributeValueUpdate docs aws:
Vous ne pouvez pas utiliser
UpdateItempour mettre à jour des attributs de clé primaire. Au lieu de cela, vous devrez supprimer l'élément, puis utiliserPutItempour créer un nouvel élément avec de nouveaux attributs.