我的TAFFYDB()具有如下所示的行:
SIP_HEADER
我想查询两种情况:
用于匹配rowID的
我正在尝试这样:
[
{"rowID":0,"objID":"hema","objVal":1,"objType":"n"},
{"rowID":0,"objID":"osmo","objVal":1,"objType":"n"},
{"rowID":0,"objID":"mot","objVal":1,"objType":"n"},
{"rowID":0,"objID":"morph","objVal":1,"objType":"n"},
{"rowID":0,"objID":"ph","objVal":0,"objType":"n"},
{"rowID":0,"objID":"conc","objVal":0,"objType":"n"}
]
但是我得到了太多的价值。例如,值ph = 1。 我认为我拥有的方式是使用OR,并且我希望在3个比较之间进行AND。
我该怎么做?
答案 0 :(得分:2)
TaffyDB的查询系统在您习惯之前有点尴尬。
一个简单的技巧是:数组中的元素被视为OR
条件的一部分。尝试对对象进行匹配。如果参数中的对象适合您要查找的记录,则将其返回。
var ans = anaDataDB(
[
{objID:["morph", "mot"], objVal:1},
{objID:["osmo", "ph"], objVal:0}
]
).get();
这将返回:
[ { rowID: 0,
objID: 'mot',
objVal: 1,
objType: 'n',
___id: 'T000002R000004',
___s: true },
{ rowID: 0,
objID: 'morph',
objVal: 1,
objType: 'n',
___id: 'T000002R000005',
___s: true },
{ rowID: 0,
objID: 'ph',
objVal: 0,
objType: 'n',
___id: 'T000002R000006',
___s: true } ]
您是说:
“如果记录的objID为“ osmo”,{{1},如果objVal为1,则我想要记录,如果它的objID为“ morph” OR
,“ mot”,OR
}“ ph”,其中objVal为0。”
对象用于匹配,数组组成OR
。