2015-07-21 40 views
1

我正在使用Breeze api編寫客戶端查詢並希望使用Json。OR運算符不能用於Breeze查詢使用Json

我有一個SQL查詢,我轉換爲Json查詢,但它會自動將'或'運算符轉換爲'和'。請幫忙。

SQL查詢

SELECT [Name] FROM [Users] WHERE [Id] IN (1,3) AND [Name] = 'abc' OR [Mobile] = '111' 

BREEZE JSON QUERY

var jsonQuery = { 
    "from": 'User', 
    "where": [{ 
    "and": [{ 
     "Id": { "in": [1, 3] }, 
     "Name": { "eq": 'abc' } 
    }], 
    "or": [{ 
     "Mobile": { "eq": '111' } 
    }] 
    }] 
} 

回答

0

好吧,我在,所以我沒有進行任何語法就可以檢查SO編輯器中編輯這一點,但你應該能夠得到想法

var jsonQuery = { 
    "from": 'User', 
    "where": [{ 
    "or": [ { 
     "and": [ { 
     "Id": { "in": [1, 3] }, 
     "Name": { "eq": 'abc' } 
     }], 
     "Mobile": { "eq": '111' } 
    }] 
    }] 
} 
+0

謝謝你幫助周杰倫,但我試過你的查詢,這裏還有OR運算符被翻譯成AND。我可以找到OR運算符的唯一位置是IN運算符。 – Dhaval

+0

只是如果它可以幫助。以下是我使用的breeze.debug.js文件的詳細信息 - 「版本」:「1.5.4」&「metadataVersion」:「1.0.5」 – Dhaval

1

Jay的解決方案是正確的,但正如他指出的那樣是語法問題。正確的查詢是:

var jsonQuery = { 
    "from": 'User', 
    "where": [{ 
    "or": [ 
     { "and": [ 
      { "Id": { "in": [1, 3] }}, 
      { "Name": { "eq": 'abc' }} 
     ] 
     }, 
     { "Mobile": { "eq": '111' }} 
    }] 
    }] 
}