Skip to content

OrderedDataStoreKeyValueInfo ​

概览 ​

字段值
KindData · 数据 Data
Realmserver

有序数据存储键值对信息对象,用于承载排序查询结果中的单条记录,包含所属域、键名、整数值与更新时间四项信息。它通常成批出现在分页结果里,作者可据此读取排行榜名次或进行数据比对。该对象只读,反映查询时刻的数据快照。

适用场景 ​

适用于按数值排序读取排行榜、积分榜或贡献榜数据的场景:先对有序数据存储发起排序查询,再逐条读取返回记录中的键名与数值,用于展示名次或做进一步统计。

使用要点 ​

先通过 game:GetService("DataStoreService"):GetOrderedDataStore(name) 取得 OrderedDataStore,并调用 GetSortedAsync 获得 Pages 分页对象;随后调用 Pages:GetCurrentPage() 取回记录数组,逐条读取 Key、Value、Scope 与 UpdatedTime,需要继续翻页时调用 Pages:AdvanceToNextPageAsync()。

注意事项 ​

该类型不可直接构造,禁止使用 OrderedDataStoreKeyValueInfo.New() 或 OrderedDataStoreKeyValueInfo(...),只能由排序查询返回的分页结果产生。其中 Value 为整数,UpdatedTime 为毫秒时间戳;记录为查询时刻的只读快照,不会随底层数据变化自动刷新。

代码示例 ​

从排序分页结果读取条目信息 ​

lua
-- @runtime server
local DataStoreService = game:GetService('DataStoreService')
local Task = game:GetService('Task')
local orderedStore = DataStoreService:GetOrderedDataStore('PlayerScore')

Task:Spawn(function()
    local pages = orderedStore:GetSortedAsync(false, 10)
    for _, item in ipairs(pages:GetCurrentPage()) do
        print(item.Scope, item.Key, item.Value, item.UpdatedTime)
    end
end)

属性 (4) ​

Name类型默认值说明
ScopeString""有序数据存储条目的前置域(Scope),类型为字符串,用于区分同一有序数据存储下不同范围的条目。该属性为只读属性,其值随查询结果一并提供。
KeyString""有序数据存储条目中的键名,类型为字符串,用于标识该条目在有序数据存储中的唯一键。该属性为只读属性,其值随查询结果一并提供。
ValueInt0有序数据存储条目中保存的整数值,类型为整数,是该条目参与排序所依据的数值。该属性为只读属性,其值随查询结果一并提供。
UpdatedTimeInt0有序数据存储条目最近一次更新的时间,以毫秒时间戳表示,类型为整数。该属性为只读属性,其值随查询结果一并提供。