首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSONStore复合查询

JSONStore复合查询
EN

Stack Overflow用户
提问于 2014-09-11 22:14:22
回答 1查看 618关注 0票数 0

如何实现对JSONStore的以下查询

在SQL格式中,

代码语言:javascript
复制
select * from table where (A or B) and (C or D)

我假设我们将使用带有advancedFind数组的QueryParts操作,但是在示例中,我可以看到如何使用QueryParts来形成表单和AND,而不是如何形成OR查询。

任何指导都很感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-11 23:33:08

以SQL为例,并给出它的值,如下所示:

select * from people where (name = 'carlos' or name = 'mike') AND (rank = 'king' or rank = 'pawn')

这与以下相同:

select * from people where (name = 'mike' AND rank = 'king') or (name = 'carlos' AND rank = 'pawn') or (name = 'carlos' AND rank = 'king') or (name = 'mike' and rank = 'pawn')

可以用如下所示的JSONStore伪码来表示:

代码语言:javascript
复制
var queryPart1 = WL.JSONStore.QueryPart()
    .equal('name', 'mike') //and
    .equal('rank', 'king');
//or
var queryPart2 = WL.JSONStore.QueryPart()
    .equal('name', 'carlos') //and
    .equal('rank', 'pawn');
//or
var queryPart3 = WL.JSONStore.QueryPart()
    .equal('name', 'carlos') //and
    .equal('rank', 'king');
//or
var queryPart4 = WL.JSONStore.QueryPart()
    .equal('name', 'mike') //and
    .equal('rank', 'pawn');

WL.JSONStore.get('people').advancedFind([queryPart1, queryPart2, queryPart3, queryPart4])
.then(...);

查询部件中的所有内容都必须匹配(即,它类似于and),并且只要一个查询部件匹配(即类似于or),结果就会返回。请记住使用顶级搜索字段。

有时,这些相当复杂的搜索是必需的,但更多的时候,我建议重新考虑离线体验。我写了关于那个这里的文章。

功能请求这里。Bug报告这里

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

https://stackoverflow.com/questions/25797809

复制
相关文章

相似问题

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