问题描述
我在这里使用 Dynamodb.net 我正在尝试使用 In Operator 获取两条记录,当我使用以下代码时,我正确获得了预期的输出
source_id 是我的排序键
List<Object> users = new List<Object>();
users .Add("Luke");
users .Add("Ivan");
object[] userArr= users .ToArray();
var results = _dynamoService.DbContext.Scan<AITrackerData>(new ScanCondition("source_id",ScanOperator.In,userArr));
foreach (var item in results)
{
}
这是从 dynamo dB 获取数据的正确方法吗?如果我使用 _dynamoService.DbContext.Scan
我使用了下面的代码但它不起作用,并给出错误
Amazon.DynamoDBv2.AmazonDynamoDBException:'尝试的条件约束不是可索引的操作'
不确定我在这里做错了什么。
var opConfig = new DynamoDBOperationConfig();
opConfig.OverrideTableName = "User";
opConfig.QueryFilter = new List<ScanCondition>();
opConfig.QueryFilter.Add(new ScanCondition("source_id",userArr));
var response = _dynamoService.DbContext.Query<AITrackerData>(source,opConfig);
foreach (var item in response)
{
}
任何人都可以建议获取数据的正确方法
解决方法
object[]users = { "Luke","Ivan" };
IEnumerable<AITrackerData> results =
_dynamoService.DbContext.Query<AITrackerData>(source,QueryOperator.Equal,users );
foreach (var item in results)
{
}
可以使用它代替 In Operator,我对此进行了测试,并且输出正确,请任何人提出建议