主题
OrderedDataStore
有序数据存储集合,用于存储键值对并支持按值排序检索。它继承自 DataStore,额外提供 GetSortedAsync 方法,可按升序或降序分页获取数据。写入的值必须是整数,适合排行榜、分数记录等需要排序的场景。
概览
有序数据存储集合,用于存储键值对并支持按值排序检索。它继承自 DataStore,额外提供 GetSortedAsync 方法,可按升序或降序分页获取数据。写入的值必须是整数,适合排行榜、分数记录等需要排序的场景。
继承自
DataStore;不可实例化,由接口返回
函数
GetSortedAsync
签名:GetSortedAsync(ascending: Bool, pageSize: Int?, minValue: Int?, maxValue: Int?, options: DataStoreGetOptions?) -> OrderedDataStoreKeyValueInfoPages
获取有序数据存储中按 value 排序的分页数据。返回一个分页迭代器,可遍历排序后的键值对。
| 参数 | 类型 | 说明 |
|---|---|---|
ascending | Bool | 是否升序 |
pageSize | Int? | 页大小, 默认 0 (使用服务端默认值) |
minValue | Int? | 最小值过滤, 包含 |
maxValue | Int? | 最大值过滤, 包含 |
options | DataStoreGetOptions? | 可选参数, 优先级高于 OrderedDataStore 初始化时的 DataStoreOptions, 可通过 DataStoreGetOptions.New() 创建 |
返回值 OrderedDataStoreKeyValueInfoPages
按 value 降序读取分页
lua
-- @runtime server
local DataStoreService = game:GetService('DataStoreService')
local Task = game:GetService('Task')
local orderedStore = DataStoreService:GetOrderedDataStore('PlayerScore')
Task:Spawn(function()
local options = DataStoreGetOptions.New()
local pages = orderedStore:GetSortedAsync(false, 10, nil, nil, options)
for _, item in ipairs(pages:GetCurrentPage()) do
print(item.Key, item.Value)
end
end)