Tarantool中的参考搜索

时间:2016-04-04 19:37:50

标签: tarantool

我有两个表:用户 user_matching 。我想在1个查询中从两个表中获取项目。例如,类似SQL的查询:

{{1}}

通常我应该在NoSQL DB中使用2个查询。现在我这样做:

  1. user_matching user_id
  2. 获取
  3. 使用user_id从用户
  4. 获取

    我可以使用Tarantool只用1个查询替换它。以及如何?

1 个答案:

答案 0 :(得分:3)

您需要创建存储过程,其中组合两个选择的结果,例如:

function select_user_by_matching_id(matching_id)
    local id = box.space.user_matching:get{matching_id} # or :select
    local user_data = box.space.user:get{id} # or :select
    # work with user_data
    return user_data
end

创建此过程后,您可以通过Tarantool驱动程序调用此过程并获取合并结果。

此处提供更多详细信息:http://tarantool.org/doc/book/app/c-lua_tutorial.html?highlight=call