集合

每个应用程序或游戏都有项目特有的数据。

必须为用户存储这些信息,必须对其进行更新、检索和在 UI 的各个部分内显示。为此,服务器中采用了具有优化设计的存储引擎,实现对象所有权访问权限和批处理操作。

数据存储在具有一个或多个对象的集合中,这些对象包含具有 JSON 内容的唯一键。创建集合无需任何配置。这将创建一个简单的嵌套名称空间,表示对象的位置。

Collection
+---------------------------------------------------------------------+
|  Object                                                             |
|  +----------+------------+-------------+-----+-------------------+  |
|  | ?UserId? | Identifier | Permissions | ... |       Value       |  |
|  +---------------------------------------------------------------+  |
+---------------------------------------------------------------------+

这种设计为开发者提供了很大的灵活性,让他们可以将游戏或应用程序中的信息集合分组。

不鼓励编写自定义 SQL,而是推荐使用存储引擎的内置功能。如果您的用例需要自定义 SQL,请与 Heroic Labs 联系后再继续。
强烈建议不要创建自定义表。

写入对象 #

用户可以写入一个或多个对象,这些将被存储在数据库服务器中。这些对象将在单个事务中写入,以确保所有写入一举成功。

条件写入 #

成功存储对象后,将返回一个版本,该版本可用于进一步更新,以便在下次写入时执行并发修改检查。这称为条件写入。

条件写入可确保客户端仅在看到过对象的早期版本时才能更新该对象。这样做的目的是,如果另一个客户端在第一个客户端的读取和下一次写入之间更改了该值,则防止对该对象被更改。

我们支持另一种条件写入,它仅在对象的集合和键不存在时才用于写入对象。

读取对象 #

就像写入对象一样,您可以从数据库服务器读取一个或多个对象。

每个对象都有一个所有者和各种权限。只有权限允许,才可以读取对象。可用 "null" 提取无所有者的对象,这对于所有用户都应能够读取的全局对象很实用。

列出对象 #

您可以列出集合中的对象,并对结果进行分页。返回的对象可以是用户所拥有的对象的筛选器,或 "null"(表示并非用户所拥有的公共记录)。

删除对象 #

如果用户有合适的权限并且他们拥有对象,则可以删除对象。

如果对象版本与客户端发送的版本匹配,您还可以对对象进行条件删除。

Related Pages