gpt4 book ai didi

python - 是否可以在 python 中过滤 DynamoDB 查询结果?

转载 作者:行者123 更新时间:2023-12-04 08:36:20 26 4
gpt4 key购买 nike

我的数据格式如下所示

{
ID:'some uuid'
Email:'some@email.com',
Tags=[tag1,tag2,tag3...],
Content:' some content'
}
分区键是ID,排序键是Email
如果我只想通过电子邮件查询,我创建了一个电子邮件的二级索引,它是“email_index”,
现在我想通过电子邮件和特定标签查询数据
例如,我想查找 Email='some@email.com' 和 Tags 包含 'tag2' 的所有数据,
我想先通过“email_index”查询
result=table.query(
IndexName='EmailIndex',
KeyConditionExpression='Email=:email',
ExpressionAttributeValues={
':email':'some@email.com'
}
)['Items']
然后用 Attr('Tags').contains('tag2') 扫描结果
那么有可能同时进行吗?或者我必须编写一个循环来过滤 Python 中的查询结果?

最佳答案

标签可能是 DynamoDB 的一个棘手用例。
一种选择是使用 FilterExpression关于您的查询操作

result=table.query(
IndexName='EmailIndex',
KeyConditionExpression='Email=:email',
FilterExpression: 'contains(Tags, :tag)',
ExpressionAttributeValues={
':email':'some@email.com',
':tag': 'tag1'
}
)['Items']

正如您所概述的,另一种选择是检查您的应用程序代码。
如果这对于您的用例来说不够灵活,您可能需要研究更强大的搜索解决方案,如 Elasticsearch。

关于python - 是否可以在 python 中过滤 DynamoDB 查询结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64779010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com