我是cassandra的新手(几天后开始学习我自己的兴趣)并寻求以下问题的帮助。
我有一张Cassandra表" User"和ListColumn"兴趣扩展ListColumn [String]"。 现在,我想要感兴趣的所有用户,说"播放"。
喜欢:从用户中选择interest.contains(" play")! 我通过ListColumn api扫描但无法找到任何。此外,在谷歌搜索,但没有这样有用的帖子。
任何帮助的人请...提前感谢:)
答案 0 :(得分:1)
因此operators中有contains
,an example如何使用它。看起来它应该像任何其他运算符一样工作,所以只需要database.userTable.select.where(_.interests contains "playing").fetch()
- 当然,这取决于您的约定。
答案 1 :(得分:1)
这可以通过集合列上的辅助索引实现,该索引仅适用于Set
列,而不适用于List
。
底线:
object interests extends SetColumn[String](this) with Index[Set[String]]
然后您可以执行以下操作:
select.where(_.interests contains "test").fetch()
如果允许过滤,也可以使用多个限制。
select.where(_.interests contains "test")
.and(_.interests contains "test2")
.allowFiltering()
.fetch()
只有在记录中找到双方利益时,上述内容才会匹配。