我有一个从 CosmosDB 中的更改源中读取的“id”字符串。每条记录都是版本化的,因此每当记录更新时,旧记录将被版本化以包含时间戳,并且将添加新记录。
例子:
id: productbase-001.11
得到更新
id: productbase-001.11 <- new record
id: productbase-001.11-2020-03-30 <- old record
我要做的是获取类型(productbase),然后获取itemId(001.11)并获取时间戳(2020-03-30)。我只需要时间戳,因为我想从我的处理逻辑中进一步排除旧记录。
foreach (ProcessedItem item in changes)
{
var convert = item.id.Split('-');
string itemType = convert[0];
string itemId = convert[1];
string timestamp = convert[2];
if (timestamp != null)
{
return;
}
else
{
[rest of my code]
}
}
显然有一个问题将使引用无效,并且将“-”作为分隔符将意味着我将“2020”、“03”和“30”都作为数组中的单独项目。如果我有 3000 次更新,也不确定这会有多慢。
如果有更好的方法来使用 SQL API 来获取这些,那么我会全力以赴。