如何在C#中为Amazon Dynamo DB中的Json属性(列值)创建全局二级索引?

vatpfxk5  于 2023-02-20  发布在  C#
关注(0)|答案(2)|浏览(122)

我有一个列ID和JSON列的表。

Id       |       JSON
----------------------------------------------------------------
101      |  {"person_id":456,"f_name":"t", "l_name":"Jack"}
         |
102      |  {"person_id":123,"f_name":"M", "l_name":"Ron"}
         |
103      |  {"person_id":789,"f_name":"A", "l_name":"Tom"}

我可以在列Id上创建GSI(全局辅助索引),但我想知道如何在person_idf_name上创建GSI。是否可以为json属性创建GSI?根据观察,我可以在Dynamo DB表中的列上创建GSI。请提供一个C#.Net示例。


.

x4shl7ld

x4shl7ld1#

取自http://aws.amazon.com/dynamodb/faqs/
问:在DynamoDB中查询JSON数据有什么不同吗?
不可以。您可以在任何顶级JSON元素上创建全局辅助索引或本地辅助索引。例如,假设您存储了一个JSON文档,其中包含有关某个人的以下信息:名字、姓氏、邮政编码以及他们所有朋友的列表。名字、姓氏和邮政编码是顶级JSON元素。您可以创建索引,以便根据名字、姓氏或邮政编码进行查询。朋友列表不是顶级元素,因此无法对朋友列表编制索引。有关全局辅助索引及其查询功能的详细信息,请参阅请参阅本FAQ中的辅助索引部分。
问:如果我在DynamoDB中嵌套了JSON数据,我可以只检索该数据的特定元素吗?
可以。使用GetItem、BatchGetItem、Query或Scan API时,可以定义ProjectionExpression来确定应从表中检索哪些属性。这些属性可以包括JSON文档的标量、集或元素。
虽然我还没有成功地做到这一点,或看到任何例子,它正在与云的形成。

4si2a6ki

4si2a6ki2#

您可以在任何顶级JSON元素上创建GSI或LSI,因此您必须将json元素放到列级别,然后创建索引。

相关问题