Как применить DynamoDB Query/Scan с помощью FilterExpression для вложенных атрибутов Json в PHP

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"
    }
}
}]

У меня есть 3 записи, хранящиеся в таблице DynamoDB. Хэш-ключ — это business_id. объект формы является родительским объектом с дочерними объектами (id, is_deleted, title). Я не знаю значение business_id. Но у меня есть только значение идентификатора «f6yy». Мне нужны целые записи с business_id с использованием идентификатора дочернего объекта (значение f6yy). Пожалуйста, предложите.


person Dipen Patel    schedule 22.03.2017    source источник


Ответы (1)


Приведенное ниже выражение фильтра должно работать.

Выражение фильтра на JavaScript:-

FilterExpression : 'forms.f6yy.id = :formIdVal',
    ExpressionAttributeValues : {           
        ':formIdVal' : 'f6yy'
    }

PHP:-

'FilterExpression' => 'forms.f6yy.id = :formIdVal',
person notionquest    schedule 22.03.2017