如何使用 dynamodb 中的数组元素查找整个数组?

how to find the whole array using the array's element in dynamodb?

在 DB 中有一个属性(名称“user_ids”),其形式为包含用户 ID [a, b, c, d...] 的数组。我想使用单个用户 ID 搜索整个数组。

不幸的是,在这种情况下,您必须扫描整个 table。 DDB 未针对此类操作进行优化。


var params = {
    TableName: 'my-table-name',
    FilterExpression: "#users = :id",
    ExpressionAttributeNames: {
        "#users": "users"
    },
    ExpressionAttributeValues: {
        ":id": ["KwV-yfctBcwCHIw="] // user-id
    }
};


dynamo.scan(params, (err, data) => {
    if (err) console.error({ err });

    console.log(data); // output -> { 'room-id': 'group-2', link: 'asdf', users: ["KwV-yfctBcwCHIw=", "Kqc-wfctacwCsww=", "lqw-yfftBcwqwIw="] },
})

是的,您可以使用 filterexpression 执行此操作,这取决于您存储数据的方式。 要么是“文档类型”(List/Map)要么是集合,只需尝试 filterexpression

您可以参考初始 aws documentation 或参考大量在线示例。

请参考这个 link... 有一些示例代码。