Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ibm mobilefirst JSONStore复杂查询_Ibm Mobilefirst_Jsonstore - Fatal编程技术网

Ibm mobilefirst JSONStore复杂查询

Ibm mobilefirst JSONStore复杂查询,ibm-mobilefirst,jsonstore,Ibm Mobilefirst,Jsonstore,如何对JSONStore实现以下查询 在SQL格式中,它是 select * from table where (A or B) and (C or D) 我假设我们将使用advancedFind操作和QueryParts数组,但是在示例中,我可以看到如何使用QueryParts来形成和和,而不是如何形成或查询 感谢您的指导 以SQL为例,给它赋值,它看起来是这样的: var queryPart1 = WL.JSONStore.QueryPart() .equal('name', 'm

如何对JSONStore实现以下查询

在SQL格式中,它是

select * from table where (A or B) and (C or D)
我假设我们将使用
advancedFind
操作和
QueryParts
数组,但是在示例中,我可以看到如何使用
QueryParts
来形成和
,而不是如何形成
查询


感谢您的指导

以SQL为例,给它赋值,它看起来是这样的:

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(...);
从(姓名='carlos'或姓名='mike')和(等级='king'或等级='pawn')的人中选择*

这与:

从以下人员中选择*(姓名='mike'和等级='king')或(姓名='carlos'和等级='pawn')或(姓名='carlos'和等级='king')或(姓名='mike'和等级='pawn')

可以用JSONStore伪代码表示,如下所示:

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(...);
查询部分中的所有内容都必须匹配(即,它类似于
),只要一个查询部分匹配(即,它类似于
),就会返回结果。请记住使用顶级搜索字段

有时需要这些相当复杂的搜索,但我建议经常重新考虑离线体验。我写过

供参考-功能请求。错误报告