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

Scala 如何使用phantom从cassandra中的ListColumn[String]进行查询,scala,cassandra,phantom-dsl,Scala,Cassandra,Phantom Dsl,我是新来的卡桑德拉(几天前开始学习我自己的兴趣),并寻求以下问题的帮助 我有一个Cassandra表“User”和一个列表列“interests extends ListColumn[String]”。 现在,我想吸引所有感兴趣的用户,比如说“玩” 喜欢:从用户那里选择兴趣。包含(“播放”)! 我扫描了ListColumn api,但没有找到任何。此外,在谷歌搜索,但没有这样的有用的帖子 请帮帮忙。。。提前感谢:)所以其中有包含,下面是如何使用它。它看起来应该像其他任何操作符一样工作,所以只需选

我是新来的卡桑德拉(几天前开始学习我自己的兴趣),并寻求以下问题的帮助

我有一个Cassandra表“User”和一个列表列“interests extends ListColumn[String]”。 现在,我想吸引所有感兴趣的用户,比如说“玩”

喜欢:从用户那里选择兴趣。包含(“播放”)! 我扫描了ListColumn api,但没有找到任何。此外,在谷歌搜索,但没有这样的有用的帖子


请帮帮忙。。。提前感谢:)

所以其中有
包含
,下面是如何使用它。它看起来应该像其他任何操作符一样工作,所以只需选择
database.userTable.select.where(u.interests包含“playing”).fetch()
-当然,这取决于您的约定。

所以其中有
包含
,下面是如何使用它。看起来它应该像其他任何操作符一样工作,所以只需选择database.userTable.select.where(uu.interests包含“playing”).fetch()
-当然,这取决于您的约定。

这可以通过集合列上的二级索引来实现,该索引只适用于
集合
列,而不是使用
列表

底线:

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()

只有在记录中找到两个兴趣点时,上述内容才会匹配。

这可以通过集合列上的二级索引来实现,该索引仅适用于
集合
列,而不适用于
列表

底线:

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()

只有在记录中找到两个兴趣点时,上述内容才会匹配。

这是您查询中的唯一条件吗?查询中可能包含其他字段。。。但就目前而言,单一条件将起作用…您的查询中唯一的条件是什么?查询中可能包含其他字段。。。但就目前而言,单一条件将起作用…非常感谢。。。感谢你的帮助:)非常感谢。。。感谢你的帮助:)非常感谢。。。感谢你的帮助:)非常感谢。。。谢谢你的帮助:)非常感谢。。。感谢你的帮助:)非常感谢。。。感谢您的帮助:)