Cassandra:设置集合布尔值,怎么样?

时间:2017-01-07 09:16:15

标签: cassandra nosql

我正在制作一个可以节省不同传感器值的列家族。

Sensor_04 的布尔值为 4个不同的门 door1,door2,door3,door4

目标是能够查询并询问门1,2,3或4是真还是假?

如何为此完成语法?因为我知道我的例子是 false:

from Library import GoogleTest
import os,sys

G=GoogleTest()

G.open_browser('https://www.google.com')
G.sign_in('emailssss@gmail.com')

错误--->

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

我希望我的问题有道理,我的目标是这样的:

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

1 个答案:

答案 0 :(得分:2)

您可以假设,如果您的设置中存在door,则其值为true,然后您可以使用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