首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Taffydb动态like 'and‘查询

Taffydb动态like 'and‘查询
EN

Stack Overflow用户
提问于 2013-06-25 13:55:05
回答 3查看 1.1K关注 0票数 4

我最近开始使用taffydb。假设我有这个作为我的数据

代码语言:javascript
复制
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'},...

如果我想要编写一个查询来查找所有带有“1,2”和“3”的记录,我会这样做

代码语言:javascript
复制
db({description:{likenocase:"one two"}},{description:{likenocase:"three"}}).get()

这将返回产品2和4。不幸的是,我不知道如何使用具有未知数量的变量来搜索的动态查询来实现这一点。我这样做是为了让用户搜索他们自己提供的单词。

有人有什么想法吗?

EN

回答 3

Stack Overflow用户

发布于 2014-04-01 03:55:52

作为前兆,这不是你问题的最佳答案。但它会起作用的。:)

因此,用户将可以选择搜索具有“未知变量数量”的数据库。让我们添加最大数量的变量--可能是10个?

现在我们在一个数组中捕获所有用户的搜索变量:

代码语言:javascript
复制
// 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: ""

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

代码语言:javascript
复制
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()
票数 0
EN

Stack Overflow用户

发布于 2016-12-31 08:21:16

调整@雅各布-IT的答案,使其具有动态性。今晚第一次使用了Taffy,并且刚刚发现您可以将对象数组作为查询参数进行传递。

代码语言:javascript
复制
// 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() 

测试了上面的内容--它对我很有效。

票数 0
EN

Stack Overflow用户

发布于 2022-01-10 12:44:23

你可以这样做

代码语言:javascript
复制
let items = [];
items.push({description:{likenocase:"one two"}});
items.push({description:{likenocase:"three"}});

db(...items).get()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17290086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档