如何根据这些值使用 etcds 新范围查询来获取记录子集:
a-key/path/foo_1: value-1
a-key/path/foo_2: value-2
a-key/path/foo_3: value-3
a-key/path/foo_4: value-4
a-key/path/foo_5: value-5
我希望能够像这样查询该数据:
获取从 a-key/path/foo_3 到 a-key/path/foo_4 的所有内容(具体的最终结果),返回:
a-key/path/foo_3: value-3
a-key/path/foo_4: value-4
或者,从 a-key/path/foo_3 开始(没有结束)的所有内容,例如:
a-key/path/foo_3: value-3
a-key/path/foo_4: value-4
a-key/path/foo_5: value-5
如果这有助于/影响任何答案,我正在使用 .NET (Core) 的dotnet-etcd客户端。
a-key/path/foo_
密钥没有尽头,这意味着它们可以永远存在......在 Azure 表存储中,我可以像这样查询相同的数据:
// Query for table entities based on an optional `versionTo`.
new TableQuery<DynamicTableEntity>().Where(
TableQuery.CombineFilters(
TableQuery.GenerateFilterCondition(nameof(ITableEntity.PartitionKey), QueryComparisons.Equal, aggregateId),
TableOperators.And,
TableQuery.CombineFilters(
TableQuery.GenerateFilterCondition(nameof(ITableEntity.RowKey), QueryComparisons.GreaterThanOrEqual, CreateRowKey(versionFrom)),
TableOperators.And,
TableQuery.GenerateFilterCondition(nameof(ITableEntity.RowKey), QueryComparisons.LessThanOrEqual, CreateRowKey(versionTo ?? int.MaxValue)))
)
);
// Generate the row key
string CreateEventRowKey(int version) => $"keyPrefix_{$"{version}".PadLeft(10, '0')}";