2017-03-02 31 views
0

在.NET我指定DynamoDB(.net)中的查询结果中的属性顺序是什么?

QueryOperationConfig queryConfig = new QueryOperationConfig 
{ 
Filter = queryFilter, 
IndexName = "PARTNAME-NAME-index", 
Limit = 1, 
BackwardSearch = desc, 
Select = SelectValues.SpecificAttributes, 
AttributesToGet = new List<string> 
    { "PARTNAME","ID", "NAME","WEIGHT" } 
}; 

但在查询结果中的属性顺序 质量,标识,零件名称,名称

在我的表零件名称是Hashkey,ID为SORTKEY,我有GSI PARTNAME-名称索引合并的PARTNAME和名称

如何指定所需的属性顺序, 或默认情况下如何排序?

回答

0

首先,您正在使用传统的AttributesToGet参数。

This is a legacy parameter. Use ProjectionExpression instead.

答: -

DynamoDB不保证结果中的属性的顺序。主要的是,DynamoDB是一个键值存储。您需要从结果中获取特定键的值。

请注意,这不像RDBMS上的SELECT语句。这是一个NoSQL数据库,它与RDBMS完全不同。

+0

我得到的错误:QueryOperationConfig doesn.t对ProjectionExpression有定义 – VitaIta

+0

是的同意,这个类没有这个参数。但是,Amazon.DynamoDBv2.Model.QueryRequest类具有参数ProjectionExpression,并明确提到它是一个弃用的参数。 http://docs.aws.amazon.com/sdkfornet/v3/apidocs/Index.html。获取并设置属性AttributesToGet。 这是一个传统参数。改用ProjectionExpression。有关更多信息,请参阅Amazon DynamoDB开发人员指南中的AttributesToGet。 – notionquest

+0

呃,据我了解,QueryRequest shoild可以像AmazonDynamoDBClient.Query(QueryRequest)一样使用,现在我正在使用table.Query(QueryOperationConfig)。我的功能中的一切都应该改变... – VitaIta

相关问题