无法从我在rethinkDB中创建的表中获取数据。
我在retinkDB中创建了一个新表 - items
。
并填写数据:
r.db('test').table('items').insert([
{name: 'qqq'},
{name: 'www'},
{name: 'eee'}
])
但是 .getList()
永远不会返回表格的数据:
client.record.getList('items') // '.getEntries()' always return []
我真的不明白为什么.getList('items')
没有从items
表返回数据。
我假设这是因为条目结构:当您通过deepstream创建条目时,条目的结构如下:
[
...
{
"_d": {
"id": "qqq"
"name": 'qqq'
},
"_v": 0,
"ds_id": "qqq"
}
...
]
但我的结构只是:
[
{
"id": 'qqq'
"name": 'qqq'
}
]
我的问题是:如何在rethinkDB中创建包含数据的表(通过脚本),我们可以使用deepstream吗?
答案 0 :(得分:-1)
我找到了一个解决方案。
首先应使用正确的primaryKey
===“ds_id”:
r.db('test')
.tableCreate('items',
{
primaryKey: 'ds_id'
})
之后你必须插入类似深层结构的数据:
r.db('test').table('items').insert([
{
"_d": {
"id": r.uuid(),
"name": "qqq"
},
"_v": 0,
"ds_id": r.uuid()
}
])
要使_d.id
等于ds_id
P.S。,请使用此功能:
r.db('test').table('items').forEach(function(c) {
return r.db('test').table('items').get(c('ds_id')).update(function(row) {
return {_d: {id: row('ds_id')}};
});
})
这是愚蠢的,但我不知道如何以更优雅的方式做到这一点。
答案 1 :(得分:-1)
deepstream旨在为您管理数据。只需说
var bmw = ds.record.getRecord( 'cars/bmw' )
deepstream将创建一个名为cars
的表,并在其中存储主键为bmw的条目。您不会被要求自己创建表。