如何使用 phantom 从 cassandra 中的 ListColumn [String] 查询

How to query from ListColumn[String] in cassandra using phantom

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

我有一个 Cassandra table "User" 和一个 ListColumn "interests extends ListColumn[String]"。 现在,我想获取所有感兴趣的用户,比如 "playing"。

赞:select 来自 interests.contains("playing") 的用户! 我扫描了 ListColumn api 但找不到任何内容。此外,在 google 中搜索但没有此类有用的帖子。

请大家帮忙...提前致谢:)

所以operators and here is an example中有contains怎么用。它看起来应该像任何其他运算符一样工作,所以只需选择 database.userTable.select.where(_.interests contains "playing").fetch() - 当然,这取决于您的约定。

这可以通过集合列上的二级索引实现,它仅适用于 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()

仅当在记录中找到两个兴趣时,以上才会匹配。