在 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>'
我有一个 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>'