RethinkDB:合并两个表,如果一个不包含其他
问题描述:
关键,我合并两个表在表2 表1的主键存在,但在某些情况下,有在表2中没有关键的外交时触发的错误是没有键存在。 我想合并表与条件只有存在的关键;RethinkDB:合并两个表,如果一个不包含其他
r.table('sport').filter({sport_id:sport_id}).merge(function(doc){
return {
terminology: r.table('sport_terminology').get(doc("terminology_id"))
}
})
.run(conn, sport);
现在,如果运动不包含术语作为关键比它是发射错误。如果钥匙不存在,请给我合并旁路解决方案
答
从你的问题来看,你有什么困难,因为你没有发布你得到的异常。
我假设对于某些文档,您会在对象中得到“无属性”terminology_id“。如果是这样的情况下,只需添加一个default()
值,e.g:
r.table('sport').filter({sport_id:sport_id}).merge(function(doc) {
return {
terminology: r.table('sport_terminology')
.get(doc("terminology_id").default(null))
}
})
如果不是的话,请张贴错误消息。
感谢兄弟的帮助。正常工作 –
为什么不使用'getAll'? 'r.table( '运动')GETALL( “sport_id”,{索引: “sport_id”})。'。这将加快您的查询(对不起您的搜索),当然其他合并部分保持不变。 – pregmatch