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
ระบุเวอร์ชันทั้งหมดของกุญแจ
ลบรุ่นที่กำหนดไว้ของกุญแจอย่างถาวร
ส่งค่าของกุญแจในคลังข้อมูลที่กำหนดและตัวอย่าง DataStoreKeyInfo อินสแตนซ์
- IncrementAsync(key : string,delta : number,userIds : Array,options : DataStoreIncrementOptions):Variant
เพิ่มมูลค่าของกุญแจโดยจำนวนที่กำหนด (ทั้งสองต้องเป็นตัวเลข)
ลบคีย์ที่ระบุโดยยังคงรักษารุ่นที่เข้าถึงได้
ตั้งค่าค่าของคลังข้อมูลสำหรับกุญแจที่กำหนดไว้
อัปเดตค่าของกุญแจด้วยค่าใหม่จากฟังก์ชันการโทรกลับที่กำหนดไว้
คุณสมบัติ
วิธีการ
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"
หมายเลขรุ่นของกุญแจที่จะลบ