В вашем коде catIds
- это массив идентификаторов (вероятно, строк).
Когда вы передаете его в FilterExpression, вы предполагаете, что оно будет преобразовано в a) строку b) в строку вправильный формат.
FilterExpression : "CatID IN (:cIDs)",
ExpressionAttributeValues : {
':cIDs' : catIDs
}
В данный момент я не могу попробовать это сам, но я предполагаю, что это - то, где запрос терпит неудачу.Оператор IN
ожидает, что список значений, разделенных запятыми, будет сравниваться в скобках.Итак, после того, как массив вставлен в запрос, он должен выглядеть примерно так:
FilterExpression : "CatID IN (cat1, cat2, cat2)",
Но, скорее всего, он содержит дополнительный набор [
и ]
, и, возможно, даже преобразование массива в строку вызывает егочто-то вроде [Object object]
и т. д.
Одним из решений будет использование Array.join
для объединения всех элементов массива в одну строку перед передачей его в FilterExperession.Как то так
FilterExpression : "CatID IN (:cIDs)",
ExpressionAttributeValues : {
':cIDs' : catIDs.join()
}