0

我是 cassandra 的新手(几天前开始根据自己的兴趣学习)并为以下问题寻求帮助。

我有一个 Cassandra 表“用户”和一个 ListColumn“兴趣扩展 ListColumn [String]”。现在,我想获取所有感兴趣的用户,比如“玩”。

比如:从用户中选择interests.contains("playing")!我扫描了 ListColumn api,但找不到任何东西。此外,在谷歌搜索但没有这样有用的帖子。

任何帮助,请...在此先感谢:)

4

2 回答 2

1

所以contains运营商之间有一个例子,这里是一个如何使用它的例子。看起来它应该像任何其他运算符一样工作,所以就去database.userTable.select.where(_.interests contains "playing").fetch()- 当然,这取决于你的约定。

于 2016-10-10T21:39:16.717 回答
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()

仅当在记录中找到两种兴趣时,上述内容才会匹配。

于 2016-10-10T23:05:37.070 回答