Nosql 使用多种条件从tarantool中选择

Nosql 使用多种条件从tarantool中选择,nosql,tarantool,Nosql,Tarantool,如何使用一次从一个空间选择两个或多个字段的条件进行选择? 我在文档中没有找到示例。有两种方法可以做到这一点:使用SQL或使用较低级别的LuaAPI 第一个要求您设置空间格式,请参见。看起来是这样的: box.space.myusers:format({{name='id',type='number'}, {name='first_name',type='string'}, {name='las

如何使用一次从一个空间选择两个或多个字段的条件进行选择?
我在文档中没有找到示例。

有两种方法可以做到这一点:使用SQL或使用较低级别的LuaAPI

第一个要求您设置空间格式,请参见。看起来是这样的:

box.space.myusers:format({{name='id',type='number'},
                          {name='first_name',type='string'},
                          {name='last_name',type='string'}})
这是SQL计算列名所必需的。然后可以按如下方式查询:

box.execute([[SELECT "id" FROM "myusers" WHERE "first_name"='John' AND "last_name"='Doe';]])
从同一空间选择的另一种方法是:

user_ids = {}
for_,user in box.space.myusers.index.first_name:pairs("John") do
    if user.last_name == "Doe" then
        table.insert(user_ids, user.id)
    end
end

查看有关低级空间API的更多详细信息。

或者,如果可以编写自定义筛选函数,请不要在下面编写附加条件。并按以下方式使用:

例如,您有以下模式:

space=box.schema.space.create'test' 空格:创建_索引'primary' 空格:替换{1',奇数'} 空格:替换{2',偶数'} 空格:替换{3',奇数'} -印刷品 -[1,‘奇数’] -[2,‘偶数’] -[3,‘奇数’] - 对于_,空间中的元组:pairs do 打印元组 终止 -如果要选择具有第二个奇数字段的元组 -定义 函数是奇数元组 返回元组[2]=“奇数”-可能是更复杂的条件 终止 -然后 -它会打印出来 -[1,‘奇数’] -[3,‘奇数’] - 对于_,空间中的元组:pairs:filteris_odd do 打印元组 终止