2017-01-07 12 views
1

Я делаю columnfamily, который будет сохранять значения различных датчиков.Cassandra: Установить коллекцию boolean, как?

Sensor_04 будет иметь булевы значения 4 различных дверей. дверь1, дверь2, дверь3, дверь4.

Цель состоит в том, чтобы иметь возможность запрашивать и запрашивать дверь1,2,3 или 4 true или false?

Как синтаксис сделан для этого? Потому что я знаю, что мой пример является ложным:

CREATE COLUMNFAMILY lockSystem (sID int, sNamn text, doors set<boolean>, PRIMARY KEY(sID)); 

Wrong --->

INSERT INTO lockSystem (sID, sNamn, doors) VALUES (4,'Sensor_04' {'door1:True','door2:False','door3:False','door4:false'}); 

Я надеюсь, что мой вопрос имеет смысл, моя цель что-то вроде этого:

Sensor_4 : sID int, sName text, set: door1 bool, door2 bool, door3 bool, door4 bool

ответ

2

Можно предположить, что i f a door присутствует в вашем наборе, тогда его значение равно true, а затем yuo может использовать возможности фильтрации C * для запроса ваших данных.

Так что я бы изменить модель на что-то вроде:

CREATE TABLE lockSystem (
    sID int, 
    sNamn text, 
    doors set<text>, 
    PRIMARY KEY(sID) 
); 

doors где набор был изменен набор текста. Затем вы добавляете данные в ваш набор, когда один сигнал тревоги дверь получает «высокого» с:

UPDATE lockSystem SET doors = doors + { '1' } WHERE sID = ?; 

Чтобы отфильтровать вам данные, то вы можете использовать:

SELECT * FROM lockSystem WHERE doors CONTAINS '1'; 

Посмотрите документацию using the set type, и как filter data in a collection.