.net 是否使用DynamoDbContext检查项目是否存在?

.net 是否使用DynamoDbContext检查项目是否存在?,.net,amazon-dynamodb,aws-sdk,.net,Amazon Dynamodb,Aws Sdk,有没有办法检查DynamoDbContext中是否存在不返回该项的项?目前,在.NET中,我正在使用Load,但这将返回该项。是否有一种基于存在性只返回true或false的方法?2018年3月:我搜索了当前程序集AWSSDK.DynamoDBv2,Version=3.3.0.0,找不到任何类似于EXISTS风格方法的方法 根据Anthony Neace的上述评论和Sony Kadavan的回答: 瓶颈在于到达Dynamo DB服务器的延迟(REST API) 以及从索引中获取。因此,获取和检查

有没有办法检查DynamoDbContext中是否存在不返回该项的项?目前,在.NET中,我正在使用
Load
,但这将返回该项。是否有一种基于存在性只返回true或false的方法?

2018年3月:我搜索了当前程序集AWSSDK.DynamoDBv2,Version=3.3.0.0,找不到任何类似于EXISTS风格方法的方法

根据Anthony Neace的上述评论和Sony Kadavan的回答:

瓶颈在于到达Dynamo DB服务器的延迟(REST API) 以及从索引中获取。因此,获取和检查将非常重要 速度差不多。

所以我相信答案是否定的,没有这样的方法。您可以编写自己的包装器来获取该项(可能只获取一个属性),并返回一个布尔值,指示该项是否存在

这来自,并显示了如何查询返回已定义属性集的表:

Table table = Table.LoadTable(client, "Reply");
DateTime twoWeeksAgoDate = DateTime.UtcNow - TimeSpan.FromDays(15);
QueryOperationConfig config = new QueryOperationConfig()
{
  HashKey = "DynamoDB Thread 2", //Partition key
  AttributesToGet = new List<string> 
    { "Subject", "ReplyDateTime", "PostedBy" },
  ConsistentRead = true,
  Filter = new RangeFilter(QueryOperator.GreaterThan, twoWeeksAgoDate)
};

Search search = table.Query(config);
Table Table=Table.LoadTable(客户端,“回复”);
DateTime twoWeeksAgoDate=DateTime.UtcNow-TimeSpan.FromDays(15);
QueryOperationConfig=new QueryOperationConfig()
{
HashKey=“DynamoDB线程2”,//分区键
AttributesToGet=新列表
{“主题”、“ReplyDateTime”、“PostedBy”},
一致性阅读=正确,
过滤器=新范围过滤器(QueryOperator.GreaterThan,两周前)
};
Search=table.Query(配置);

在您的情况下,只需获取一个属性,并根据您是否获取该项返回true/false。

2018年3月:我搜索了当前程序集AWSSDK.DynamoDBv2,Version=3.3.0.0,找不到任何类似于EXISTS样式方法的方法

根据Anthony Neace的上述评论和Sony Kadavan的回答:

瓶颈在于到达Dynamo DB服务器的延迟(REST API) 以及从索引中获取。因此,获取和检查将非常重要 速度差不多。

所以我相信答案是否定的,没有这样的方法。您可以编写自己的包装器来获取该项(可能只获取一个属性),并返回一个布尔值,指示该项是否存在

这来自,并显示了如何查询返回已定义属性集的表:

Table table = Table.LoadTable(client, "Reply");
DateTime twoWeeksAgoDate = DateTime.UtcNow - TimeSpan.FromDays(15);
QueryOperationConfig config = new QueryOperationConfig()
{
  HashKey = "DynamoDB Thread 2", //Partition key
  AttributesToGet = new List<string> 
    { "Subject", "ReplyDateTime", "PostedBy" },
  ConsistentRead = true,
  Filter = new RangeFilter(QueryOperator.GreaterThan, twoWeeksAgoDate)
};

Search search = table.Query(config);
Table Table=Table.LoadTable(客户端,“回复”);
DateTime twoWeeksAgoDate=DateTime.UtcNow-TimeSpan.FromDays(15);
QueryOperationConfig=new QueryOperationConfig()
{
HashKey=“DynamoDB线程2”,//分区键
AttributesToGet=新列表
{“主题”、“ReplyDateTime”、“PostedBy”},
一致性阅读=正确,
过滤器=新范围过滤器(QueryOperator.GreaterThan,两周前)
};
Search=table.Query(配置);

在您的情况下,只需获取一个属性,并根据是否获取该项返回true/false。

您可以按如下方式构建表达式并在查询中使用。然后你可以检查一下计数

var expression = new Expression
{
  ExpressionStatement = "attribute_exists(attributeName)"
};

您可以构建一个表达式,如下所示,并在查询中使用。然后你可以检查一下计数

var expression = new Expression
{
  ExpressionStatement = "attribute_exists(attributeName)"
};
相关的:相关的: