2015-07-21 4 views
1

Я использую Breeze api для написания запросов на стороне клиента и хочу использовать Json для этого.Оператор OR, не работающий для запроса Breeze с использованием Json

У меня есть SQL-запрос, который я преобразовал в Json-запрос, но он преобразует оператор «или» в «и» автоматически. Пожалуйста помоги.

SQL Query

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

БРИЗ 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' }} 
    }] 
    }] 
}