我有一个AWS DynamoDb购物车表,其项目结构如下-
{
"cart_id": "5e4d0f9f-f08c-45ae-986a-f1b5ac7b7c13",
"user_id": 1234,
"type": "OTHER",
"currency": "INR",
"created_date": 132432423,
"expiry": 132432425,
"total_amount": 90000,
"total_quantity": 2,
"items": [
{
"amount": 90000,
"category": "Laptops",
"name": "Apple MacBook Pro",
"quantity": 1
}
]
}
-
{
"cart_id": "12340f9f-f08c-45ae-986a-f1b5ac7b1234",
"user_id": 1234,
"type": "SPECIAL",
"currency": "INR",
"created_date": 132432423,
"expiry": 132432425,
"total_amount": 1000,
"total_quantity": 2,
"items": [
{
"amount": 1000,
"category": "Special",
"name": "Special Item",
"quantity": 1
}
]
}
该表将cart_id
作为主键,user_id
作为索引或GSI,type
作为索引或GSI。
我希望能够查询购物车表,
查找user_id=1234且type!=“special”
的项目。
我不知道这是否意味着查询-
--key-condition-expression "user_id = 1234 AND type != 'SPECIAL'"
我知道AWS DynamoDb表不能同时使用多个索引进行查询,
我遇到了以下问题,它有一个类似的用例,答案是建议创建一个复合键,
使用多个本地辅助索引DynamoDb进行查询
这是否意味着在将新项放入表中时,
我将需要维护另一列,如user_id_type
,
其值为1234special
并为user_id_type
创建索引/GSI?
项目结构示例-
{
"cart_id": "5e4d0f9f-f08c-45ae-986a-f1b5ac7b7c13",
"user_id": 1234,
"type": "OTHER",
"user_id_type" : "1234OTHER",
"currency": "INR",
"created_date": 132432423,
"expiry": 132432425,
"total_amount": 90000,
"total_quantity": 2,
"items": [
{
"amount": 90000,
"category": "Laptops",
"name": "Apple MacBook Pro",
"quantity": 1
}
]
}
引用-
1。使用多个本地辅助索引Dynamodb
2进行查询。在Dynamodb中有查询多个哈希键的方法吗?
你的假设是正确的。也许您可以在其中添加一个定界符field1_field2或者哈希它们,如果它们中的任何一个的大小太大hashOfField1_hashOfField2
然而,这意味着在您的方面花费更多的处理能力。因为DynamoDB本机不支持它。
DynamoDB中得复合键得列数超过2列?
Dynamodb:使用两个以上属性的查询
关于用例的附加信息
仅允许哈希键使用KeyConditionExpression。您可以将其放在FilterExpression中
为什么DynamoDB查询中没有**not equal**比较?
问题内容: 我有两个表: 这是我的查询: 并为此: 它在第一个表上使用的全索引扫描进行排序,但不使用y索引进行连接(在解释中)。这对性能非常不利,并且会杀死整个数据库服务器,因为这是一个非常频繁的查询。 我尝试使用反转表顺序,但这给了,甚至更糟。 有什么办法可以使mysql同时使用索引进行连接和排序? ===更新=== 我真的很绝望。也许某种形式的非规范化可以在这里有所帮助? 问题答案: 如果您有
我可以使用Lucene查询ElasticSearch索引吗? 我使用ElasticSearch创建了一个索引,并插入了以下三个文档: null 不幸的是,d.get(“_source”)也返回null。 如何检索匹配查询的文档字段? 谢谢你。
问题内容: 我正在使用SQL Server,但没有足够的数据集来测试查询的性能。 我想分析查询,看看索引是否被利用。我该如何检查 问题答案: 在SQL Management Studio中,只需键入查询,然后按Control-L(显示查询执行计划)。在那里,您将能够查看是否正在使用任何索引。“表扫描”表示未使用索引。“索引扫描”是指使用索引。
问题内容: 想象一个有多列的表,例如。我通常按进行选择,但是,客户端应用程序中有多个查询,它们对列的子集使用各种条件。 当MySQL在多列有多个WHERE条件的单个表上执行查询时,它真的可以利用在不同列上创建的索引吗?还是使其快速的唯一方法是为所有可能的查询创建多列索引? 问题答案: 是的,MySQL可以对单个查询使用多个索引。优化器将确定哪些索引将使查询受益。您可以用来获取有关MySQL如何
现在,我要检索一个值: Q1:在[3.3,6.6]范围内-预期返回值:[3.3,5.5,6.6]或[3.3,3.3,5.5,6.6](包括最后一个),如果没有,则为[3.3,5.5]或[3.3,3.3,5.5]。 Q2:在[2.0,4.0]范围内-预期返回值:[3.3]或[3.3,3.3] 对于任何其他多索引维度都是相同的,例如B值: Q3:在范围[111,500]中有重复,作为范围中的数据行数-
我希望使用DynamoDB表来请求我在查询中创建的二级索引。 从现在开始,对于我正在做的一个二级索引: 我会像这样构建我的KeyConditionExpression: 我读了一遍又一遍这份文件,但我不知道怎么做: https://docs.aws.amazon.com/fr_fr/amazondynamodb/latest/gettingstartedguide/GettingStarted.P