1

如何根据这些值使用 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')}";

4

0 回答 0