如何使用 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()
仅当在记录中找到两个兴趣时,以上才会匹配。
我是 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()
仅当在记录中找到两个兴趣时,以上才会匹配。