[英]taffydb using OR and AND in single query
我的TAFFYDB()具有如下所示的行:
[
{"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"}
]
我想查詢2個條件:
用於匹配rowID
我正在嘗試這樣:
var ret=anaDataDB(
[
[ [{"objID":"morph","objID":"mot"}] ,{ "objVal":1} ] ,
[ [{"objID":"osmo"} ] ,{ "objVal":0 } ],
[ [{"objID":"ph"} ] ,{ "objVal":0 } ]
]
).get();
但是我得到了太多的價值。 例如,值ph = 1。 我認為我使用OR的方式是要在3個比較之間使用AND。
我怎么做?
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 } ]
您是在說:
“如果記錄的objVal為1,則它的objID為“ morph” OR
“ mot”, OR
如果記錄的objID為“ osmo” OR
“ ph”,則該記錄為objVal為0。
對象用於匹配,數組進行OR
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.