我最近开始使用taffydb。假设我将此作为我的数据
db= TAFFY([
{OrderNo:'prod1',range: 3,description:'one two'},
{OrderNo:'prod2',range: 2,description:'one two three'},
{OrderNo:'prod3',range: 2,description:'one three two'},
{OrderNo:'prod4',range: 6,description:'one two four three'},
{OrderNo:'prod5',range: 5,description:'three'},...
如果我想写一个查询来查找“一二”和“三”的所有记录,我会做类似的事情
db({description:{likenocase:"one two"}},{description:{likenocase:"three"}}).get()
这将返回产品2和4.不幸的是,我无法弄清楚如何使用动态查询来执行此操作,该查询将具有未知数量的变量来搜索。我这样做是为了让用户搜索他们自己提供的单词。
有人有任何想法吗?
答案 0 :(得分:0)
作为前提,这不是您问题的最佳答案。但它会奏效。 :)
因此,用户可以选择使用“未知数量的变量”搜索数据库。让我们添加最大量的变量 - 也许是10?
现在我们在数组中捕获所有用户的搜索变量:
// Create a dynamic array
var userSearchVars = [];
// Fill the array from 10 HTML input type=text fields
// You can fill your array however you fancy. This is just one example!
$("#myForm input[type=text]").each(function() {
userSearchVars.push( $(this).val());
}
// Note: by default an empty input will return the empty string: ""
使用您的代码段,只需使用数组查询数据库:
db(
{description:{likenocase:userSearchVars[0]}},
{description:{likenocase:userSearchVars[1]}},
{description:{likenocase:userSearchVars[2]}},
{description:{likenocase:userSearchVars[3]}},
{description:{likenocase:userSearchVars[4]}},
{description:{likenocase:userSearchVars[5]}},
{description:{likenocase:userSearchVars[6]}},
{description:{likenocase:userSearchVars[7]}},
{description:{likenocase:userSearchVars[8]}},
{description:{likenocase:userSearchVars[9]}}
).get()
答案 1 :(得分:0)
调整@ Jacob-IT的答案,使其动态。今晚第一次使用Taffy,刚发现你可以传递一个对象数组作为查询参数。
// Create a dynamic array
var userSearchVars = [];
// Fill the array from 10 HTML input type=text fields
// You can fill your array however you fancy. This is just one example!
$("#myForm input[type=text]").each(function() {
// This is my edit - push the whole query on to the array.
userSearchVars.push({description:{likenocase: $(this).val() }});
}
// Then pass the whole query array in...
db( userSearchVars ).get()
测试了上述内容 - 它对我有用。