RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Глава 10. Построение выражений

Эта глава объясняет, как построить выражения, используя X DevAPI.

Работая с выражениями MySQL, используемыми в CRUD, запросы могут быть определены двумя способами. Первый должен использовать последовательности, чтобы сформулировать выражения, которые должны быть знакомыми, если вы разработали с кодом SQL. Другой метод должен использовать функциональность Expression Builder.

10.1. Последовательности выражения

Определение строковых выражений прямое, поскольку их легко читать и написать. Недостаток то, что они должны быть разобраны, прежде чем они смогут быть переданы MySQL Server. Кроме того, проверка типов может быть сделана только во время выполнения.

Код MySQL Shell JavaScript

// Using a string expression to get all documents that
// have the name field starting with 'S'
var myDocs = myColl.find('name like :name').bind('name', 'S%').execute();

Все внедрения могут использовать синтаксис, иллюстрированный выше.

10.1.1. Последовательности булевого выражения

Последовательности булевого выражения могут использоваться, фильтруя коллекции или операции по использованию таблиц, такие как find() и remove(). Выражение оценено однажды для каждого документа или строки.

Следующий пример булевого выражения использует строку find(), чтобы искать все документы с атрибутом цвета red из коллекции apples:

apples.find('color = "red"').execute()

Точно так же удалить все красные яблоки:

apples.remove('color = "red"').execute()

10.1.2. Последовательности выражения

Последовательности выражения используются, чтобы вычислить значение, которое может тогда быть назначено на данное поле или столбец. Это необходимо для обоих modify() и update(), а также вычисления значений в документах во время вставки.

Использование в качестве примера последовательности выражения должно было бы увеличить счетчик. Функция expr() используется, чтобы обернуть последовательности, где они иначе интерпретировались бы буквально. Например, чтобы увеличить:

// the expression is evaluated on the server
collection.modify('true').set("counter", expr("counter + 1")).execute()

Если вы не обертываете последовательность с expr(), это назначило бы литеральную строку "counter + 1" члену "counter":

// equivalent to directly assigning a string: counter = "counter + 1"
collection.modify('true').set("counter", "counter + 1").execute()

Поиск

 

Найди своих коллег!

Вы можете направить письмо администратору этой странички, Алексею Паутову. mailto:alexey.v.pautov@mail.ru