Amazon dynamodb 在dynamoDB PHP中,是否可以不使用哈希键或范围键值来更新项?

Amazon dynamodb 在dynamoDB PHP中,是否可以不使用哈希键或范围键值来更新项?,amazon-dynamodb,Amazon Dynamodb,我有3条记录存储在dynamoDB表中。哈希键是业务id。表单对象是父对象和子对象(id、已删除、标题)。我不知道生意的价值。但我只有id值“f6yy”。我希望更新被删除为id的1(值为f6yy)。请建议整个查询。为了从DynamoDB表中删除该项,分区键和排序键都是必需的 对于主键,必须提供所有属性。对于 例如,对于一个简单的主键,您只需要提供一个值 对于分区键。对于复合主键,必须提供 分区键和排序键的值 没有这样的查询,因为从逻辑上讲,如果没有为表中的条目提供键(business_id),A

我有3条记录存储在dynamoDB表中。哈希键是业务id。表单对象是父对象和子对象(id、已删除、标题)。我不知道生意的价值。但我只有id值“f6yy”。我希望更新被删除为id的1(值为f6yy)。请建议整个查询。

为了从DynamoDB表中删除该项,分区键和排序键都是必需的

对于主键,必须提供所有属性。对于 例如,对于一个简单的主键,您只需要提供一个值
对于分区键。对于复合主键,必须提供 分区键和排序键的值


没有这样的查询,因为从逻辑上讲,如果没有为表中的条目提供键(business_id),AWS无法识别要修改的条目

因此,您需要更改模式并根据查询进行设计,或者将表分解为多个表,以便数据库类似于

Record1: [{
"business_id": 2,
"forms": {
    "f522": {
        "id": "f522",
        "is_deleted": 0,
        "title": "Form 1"
        },
    "f8b6": {
        "id": "f8b6",
        "is_deleted": 0,
        "title": "Form 2" 
       },
    "fw56": {
        "id": "fw56",
        "is_deleted": 0,
        "title": "Form 3" 
      }
}
}]

Record2: [{
"business_id": 3,
"forms": {
    "f788": {
        "id": "f788",
        "is_deleted": 0,
        "title": "Form 11"
    },
    "f6yy": {
        "id": "f6yy",
        "is_deleted": 0,
        "title": "Form 12"
    },
    "f00i": {
        "id": "f00i",
        "is_deleted": 0,
        "title": "Form 13"
    }
}
}]

Record3: [{
"business_id": 4,
"forms": {
    "f839": {
        "id": "f839",
        "is_deleted": 0,
        "title": "Form 21"
    },
    "f1bc": {
        "id": "f1bc",
        "is_deleted": 0,
        "title": "Form 22"
    },
    "f6ac": {
        "id": "f6ac",
        "is_deleted": 0,
        "title": "Form 23"
    }
}
}]

现在可以对f6yy的表2进行更新。

我有3条记录存储在dynamoDB表中。哈希键是业务id。表单对象是父对象和子对象(id、已删除、标题)。我不知道生意的价值。但我只有id值“f6yy”。我希望更新被删除为id的1(值为f6yy)。请建议整个查询。如果没有哈希键和排序键,则无法更新项目。谢谢@ConferenceQuest获得答案。对于上述数据,我还有一个问题。我没有测距键。我只有hask键,那么可以在dynamoDB中更新项吗?对于复合主键,必须同时提供分区键和排序键的值。
table 1- business_id  form_id(ex. f6yy etc)
table 2- form_id     form_object(ex. {"is_deleted": 0,"title": "Form 1"})