как Cql's Collection содержит альтернативное значение? - PullRequest
0 голосов
/ 14 мая 2019

У меня вопрос к коллекции кассандры.

Я хочу сделать запрос, который будет работать с поиском в коллекции.

CREATE TABLE rd_db.test1 (
    testcol3 frozen<set<text>> PRIMARY KEY,
    testcol1 text,
    testcol2 int
)

структура таблицы такая ...

и

enter image description here

это содержимое таблицы.

в этой ситуации я хочу, чтобы запрос cql имел альтернативные значения опций в столбце set.

если это sql и testcol3 не является коллекцией,

 select * from rd.db.test1 where testcol3 = 4 or testcol3 = 5

но это cql и коллекция .. я пытаюсь

 select * from test1 where testcol3 contains '4' OR testcol3 contains '5'  ALLOW FILTERING ;

 select * from test1 where testcol3 IN ('4','5') ALLOW FILTERING ;

но эти два запроса не сработали ...

помогите пожалуйста ...

1 Ответ

0 голосов
/ 14 мая 2019

Это не сработает для вас по нескольким причинам:

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

Но я хочу предложить пройти курсы DS201 и DS220 на сайте Академии DataStax , чтобы лучше понять, как работает Cassandra и как моделировать для нее данные.

...