假设我有一行名为'version'的单元格,它保存行的当前版本。
此版本号对于很多行都是相同的。
在某些时候,我想找到版本不等于某个给定版本的所有行:给我所有行的版本!= 1.0,然后我返回版本为0.9,0.8,0.8.1的所有行, 0.7.1.2等等(在我的用例中,我只会搜索'较旧'版本)。
我想知道如何对此进行建模。
br,Svante
答案 0 :(得分:0)
您可以将您的版本列作为主键的第二部分(id,version),然后您可以通过select * from where where id = x和version<来查询它。 '1.0';
答案 1 :(得分:0)
你无法在Cassandra实现这一目标。 根据具体情况,您可以在应用程序中创建变通方法和/或使用" IN"条款。我要做的是创建一个表格,其中包含每个版本的一组"以前的版本"。
create table version_history (version float PRIMARY KEY , previous set<float>);
任何时候你需要获得&#34;所有行都带有X&#34;之前的版本,我查询version_history来检索集合,然后进行类似
的查询select * from rowcontainer where version in (previous[1], previous[2] ... previous[n]));
这只是一个想法,你需要总是执行2次查询,但这肯定比扫描整个表更好。
HTH, 卡罗