DataStore
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
ดู ร้านข้อมูล .
สรุป
วิธีการ
ดึงรุ่นกุญแจที่กำหนดไว้
ดึงรุ่นกุญแจที่เป็นปัจจุบันในเวลาที่กำหนด
- ListKeysAsync(prefix : string,pageSize : number,cursor : string,excludeDeleted : boolean):DataStoreKeyPages
คืนวัตถุ DataStoreKeyPages ร้านค้า
- ListVersionsAsync(key : string,sortDirection : Enum.SortDirection,minDate : number,maxDate : number,pageSize : number):DataStoreVersionPages
ระบุเวอร์ชันทั้งหมดของกุญแจ
ลบรุ่นที่กำหนดไว้ของกุญแจอย่างถาวร
Returns the value of a key in a specified data store and a DataStoreKeyInfo instance.
- IncrementAsync(key : string,delta : number,userIds : Array,options : DataStoreIncrementOptions):Variant
Increments the value of a key by the provided amount (both must be integers).
Removes the specified key while also retaining an accessible version.
Sets the value of the data store for the given key.
Updates a key's value with a new value from the specified callback function.
คุณสมบัติ
วิธีการ
GetVersionAsync
ฟังก์ชันนี้ดึงรุ่นกุญแจที่ระบุและตัวอย่าง DataStoreKeyInfo ได้ตัวระบุเวอร์ชันสามารถค้นหาได้ผ่าน DataStore:ListVersionsAsync() หรืออาจเป็นตัวระบุที่ส่งคืนโดย GlobalDataStore:SetAsync()
พารามิเตอร์
ชื่อกุญแจที่ข้อมูลเวอร์ชันถูกร้องขอหาก DataStoreOptions.AllScopes ถูกตั้งค่าเป็นจริงเมื่อเข้าถึงคลังข้อมูลผ่าน DataStoreService:GetDataStore() ชื่อกุญแจนี้จะต้องถูกแทรกก่อนด้วยขอบเขตเดิมตามที่อยู่ใน "scope/key"
หมายเลขรุ่นของกุญแจที่ข้อมูลเวอร์ชันถูกร้องขอ
ส่งค่ากลับ
ค่าของกุญแจในรุ่นที่กำหนดและตัวอย่าง DataStoreKeyInfo ที่รวมหมายเลขรุ่นวันที่และเวลาที่รุ่นถูกสร้างและฟังก์ชันในการดึงข้อมูล UserIds และเมทาดาตา
GetVersionAtTimeAsync
ฟังก์ชันนี้ดึงรุ่นกุญแจที่เป็นปัจจุบันในเวลาที่กำหนดเช่นเดียวกับตัวอย่าง DataStoreKeyInfo
พารามิเตอร์
ชื่อกุญแจที่ข้อมูลเวอร์ชันถูกร้องขอหาก DataStoreOptions.AllScopes ถูกตั้งค่าเป็นจริงเมื่อเข้าถึงคลังข้อมูลผ่าน DataStoreService:GetDataStore() ชื่อกุญแจนี้จะต้องถูกแทรกก่อนด้วยขอบเขตเดิมตามที่อยู่ใน "scope/key"
เวลาที่ Unix ในมิลลิวินาทีที่รุ่นที่ร้องขออยู่ในปัจจุบันต้องมากกว่าศูนย์ต้องไม่เกินสิบนาทีในอนาคต
ส่งค่ากลับ
มูลค่าของกุญแจที่เป็นปัจจุบันในเวลาที่กำหนดและตัวอย่าง DataStoreKeyInfo ที่รวมหมายเลขรุ่นวันที่และเวลาที่รุ่นถูกสร้างและฟังก์ชันในการดึงข้อมูล UserIds และเมทาดาตาnil หากไม่มีเวอร์ชันที่ใช้งานอยู่ในเวลาที่ร้องขอ
ตัวอย่างโค้ด
The following code sample retrieves data store key versions using timestamps.
local DataStoreService = game:GetService("DataStoreService")
local dataStore = DataStoreService:GetDataStore("DataStore")
local key = "key-123"
function setData(data)
local success, result = pcall(function()
dataStore:SetAsync(key, data)
end)
if not success then
warn(result)
end
end
function getVersionAtTime(timestamp)
local success, result, keyInfo = pcall(function()
return dataStore:GetVersionAtTimeAsync(key, timestamp.UnixTimestampMillis)
end)
if success then
if result == nil then
print("No version found at time")
else
print(result, keyInfo.Version)
end
else
warn(result)
end
end
-- Previously ran at 2024/12/02 6:00 UTC
setData("version 1")
-- Previously ran at 2024/12/02 9:00 UTC
setData("version 2")
-- Prints "No version found at time"
local time1 = DateTime.fromUniversalTime(2024, 12, 02, 05, 00)
getVersionAtTime(time1)
-- Prints "version 1 <version>"
local time2 = DateTime.fromUniversalTime(2024, 12, 02, 07, 00)
getVersionAtTime(time2)
-- Prints "version 2 <version>"
local time3 = DateTime.fromUniversalTime(2024, 12, 02, 10, 00)
getVersionAtTime(time3)
ListKeysAsync
ฟังก์ชันนี้ส่งคืนวัตถุ DataStoreKeyPages ร้านค้าprefix เพื่อค้นหากุญแจที่มีชื่อเริ่มต้นด้วยสuffix ที่ให้ไว้เท่านั้น
หาก DataStoreOptions.AllScopes ถูกตั้งค่าเป็นจริงเมื่อเข้าถึงคลังข้อมูลผ่าน DataStoreService:GetDataStore() กุญแจจะถูกส่งคืนพร้อมกับทุกขอบเขตเป็นตัวอักษรต้น
พารามิเตอร์
(เลือกได้) คํานําหน้าที่จะใช้สําหรับการค้นหากุญแจ
(ตัวเลือก) จํานวนรายการที่จะถูกส่งคืนในแต่ละหน้าหากไม่มีค่าที่กำหนด เครื่องยนต์จะส่งค่าเริ่มต้นของ 0 ไปยังบริการเก็บข้อมูลเว็บ ซึ่งในทางกลับกันจะเริ่มต้นที่ 50 รายการต่อหน้า
(ตัวเลือก) เคอร์เซอร์เพื่อดำเนินการต่อการซ้ำ
(ตัวเลือก) ไม่ให้คีย์ที่ลบออกถูกส่งคืน
เมื่อเปิดใช้งาน ListKeys จะตรวจสอบได้ถึง 512 คีย์หากลบกุญแจทั้งหมดที่เลือกแล้ว จะส่งคืนรายการว่างเปล่าพร้อมเคอร์เซอร์เพื่อดำเนินการต่อการซ้ำ
ส่งค่ากลับ
ตัวอย่าง DataStoreKeyPages ที่ระบุคีย์เป็นตัวอย่าง DataStoreKey ตัวอย่าง
ListVersionsAsync
ฟังก์ชันนี้ระบุเวอร์ชันของคีย์ที่ระบุโดยอันดับเพิ่มขึ้นหรือลดลงตามลำดับที่กำหนดโดยพารามิเตอร์ Enum.SortDirectionมันสามารถกรองเวอร์ชันที่ส่งคืนได้โดยเวลาที่น้อยที่สุดและสูงสุดได้
พารามิเตอร์
ชื่อกุญแจสำหรับรุ่นที่จะแสดงรายการหาก DataStoreOptions.AllScopes ถูกตั้งค่าเป็นจริงเมื่อเข้าถึงคลังข้อมูลผ่าน DataStoreService:GetDataStore() ชื่อกุญแจนี้จะต้องถูกแทรกก่อนด้วยขอบเขตเดิมตามที่อยู่ใน "scope/key"
(ตัวเลือก) Enum ระบุลำดับการจัดเรียงแบบเพิ่มขึ้นหรือลดลง
(เลือกได้) เวลาที่ Unix ในมิลลิวินาทีหลังจากนั้นเวอร์ชันควรจะระบุไว้
(เลือกได้) เวลาที่ Unix ในมิลลิวินาทีที่เวอร์ชันควรจะระบุไว้
(ตัวเลือก) จํานวนรายการที่จะถูกส่งคืนในแต่ละหน้าหากไม่มีค่าที่กำหนด เครื่องยนต์จะส่งค่าเริ่มต้นของ 0 ไปยังบริการเก็บข้อมูลเว็บ ซึ่งในทางกลับกันจะเริ่มต้นที่ 1024 รายการต่อหน้า
ส่งค่ากลับ
ตัวอย่าง DataStoreVersionPages ที่ระบุเวอร์ชันทั้งหมดของกุญแจเป็น DataStoreObjectVersionInfo ตัวอย่าง
ตัวอย่างโค้ด
The following code sample retrieves all versions after a specified starting time, sorted in ascending order.
local DataStoreService = game:GetService("DataStoreService")
local experienceStore = DataStoreService:GetDataStore("PlayerExperience")
local time = DateTime.fromUniversalTime(2020, 10, 09, 01, 42)
local listSuccess, pages = pcall(function()
return experienceStore:ListVersionsAsync("User_1234", nil, time.UnixTimestampMillis)
end)
if listSuccess then
local items = pages:GetCurrentPage()
for key, info in pairs(items) do
print("Key:", key, "; Version:", info.Version, "; Created:", info.CreatedTime, "; Deleted:", info.IsDeleted)
end
end
RemoveVersionAsync
ฟังก์ชันนี้ลบรุ่นที่กำหนดไว้ของกุญแจอย่างถาวร ตัวระบุรุ่นสามารถค้นหาได้ผ่าน DataStore:ListVersionsAsync()
ไม่เหมือนกับ GlobalDataStore:RemoveAsync() ฟังก์ชันนี้จะไม่สร้างรุ่น "tombstone" ใหม่และค่าที่ถูกลบไม่สามารถดึงคืนได้ในภายหลัง
พารามิเตอร์
ชื่อกุญแจสำหรับรุ่นที่จะถูกลบหาก DataStoreOptions.AllScopes ถูกตั้งค่าเป็นจริงเมื่อเข้าถึงคลังข้อมูลผ่าน DataStoreService:GetDataStore() ชื่อกุญแจนี้จะต้องถูกแทรกก่อนด้วยขอบเขตเดิมตามที่อยู่ใน "scope/key"
หมายเลขรุ่นของกุญแจที่จะลบ