在 deepstream.io 中的第一个 getRecord 上创建 RethinkDB table

Create RethinkDB table on first getRecord in deepstream.io

我有一个 deepstream 服务器通过官方连接器连接到 RethinkDB。

server.set( 'storage', new RethinkDbConnector({
  port: 28015,
  host: rethinkDbHost,
  splitChar: '/',
  defaultTable: 'ds-records'
}));

一开始数据库里没有table

当我创建一条记录时,如果 table 不存在,它会自动创建。

var id = "chat/" + ds.getUid();
var record = ds.record.getRecord(id);

record.whenReady(function() {
  record.set({user: data.user, message: data.message, timestamp: Date.now(), id: id});
});

Table 按预期创建。

但是,如果我尝试创建 "nested table",它不起作用。

var id = "chat/idle_banter/" + ds.getUid();
var record = ds.record.getRecord(id);

record.whenReady(function() {
  record.set({user: data.user, message: data.message, timestamp: Date.now(), id: id});
});

尝试创建名为 'table/collection/id' 的记录时未创建 table

我是否必须先手动创建 table,然后再添加 collection?


编辑

我的术语使用笨拙。我希望创建一个代表整个聊天的 table,然后创建一个代表实际房间的文档。新的聊天消息(记录)将被放入此文档中。

我不得不承认,我认为 RethinkDB 不支持嵌套 table 的概念。如果您想为每个聊天创建 table,只需使用 splitChar 以外的字符,例如'chat-idle_banter/<recordName>'