Taffydb 动态像“and”查询

Dar*_*ane 5 javascript taffydb

我最近开始使用 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'},...
Run Code Online (Sandbox Code Playgroud)

如果我想编写一个查询来查找包含“一二”和“三”的所有记录,我会这样做

db({description:{likenocase:"one two"}},{description:{likenocase:"three"}}).get()
Run Code Online (Sandbox Code Playgroud)

这将返回产品 2 和 4。不幸的是,我不知道如何使用动态查询来执行此操作,该查询将要搜索未知数量的变量。我这样做是为了让用户搜索他们自己提供的单词。

有人有什么想法吗?

Jac*_*ges 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: ""
Run Code Online (Sandbox Code Playgroud)

使用您的代码片段,只需使用数组查询数据库:

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()
Run Code Online (Sandbox Code Playgroud)