Запрос N1QL имеет фильтр WHERE myField < $value
.
Экспериментируя, я вижу, что Couchbase упорядочивает типы следующим образом: boolean ‹ integer ‹ string ‹ JsonArray, хотя с моей точки зрения они не должны быть сопоставимы.
Например, любое логическое значение оценивается как меньше любого целого числа; любое целое число меньше всех строк. (9223372036854775807
(Long.MAX_VALUE
) меньше ""
(пустая строка).)
Я хочу избежать этого принуждения типов. Я хочу, чтобы "A" < 1
и "A" > 1
были false
и не возвращали такие значения из фильтра. (А еще кажется, что в Javascript оба эти выражения false
, как и должно быть.)
Каковы правила принуждения? Как предотвратить это?