当前位置: 首页 > 知识库问答 >
问题:

Cassandra CQL:基于用户定义类型中的字段的查询

满耀
2023-03-14

我创建了一个如下表

创建表用户(user_idint,user_fnametext,user_lnametext, PRIMARY KEY(user_id));

然后,我将另一列添加到表中:

创建类型特征(birth_yearint、marital_status文本、高度浮动);

将其添加到表中:

用户添加user_traits冻结

我想运行一个查询,返回所有单身用户的姓名,但是我不确定如何实现这一点,因为我正在过滤用户定义类型中的字段。

这就是我所拥有的:

<代码>选择user\u fname,user\u lname FROM users WHERE user\u traits。婚姻状况='单身'允许筛选

但是,此代码在我运行时返回错误。此查询是否可以在Cassandra CQL中执行?

共有1个答案

仲孙献
2023-03-14

UDT字段的查询仅在DSE Search中受支持,并且可能会在辅助索引的新实现中受支持,但这是在未来。

你试图使用Cassandra作为“传统”数据库是犯了一个大错误。你错过了这里的主要部分——表结构是根据查询选择的,而不是基于表结构的查询。所以如果你需要按军事状态搜索,它应该是主键(尽管这将是一个单独的问题,因为它是低基数字段)。

正如我在之前的答案中提到的,如果您以这种方式使用Cassandra,您需要重新考虑它的使用,或者完全改变解决问题的方法。我建议您参加DataStax Academy上的DS220课程,了解Cassandra的数据建模——这将为您节省大量时间。此外,请考虑获取可从DataStax网站免费获得的第3版“Cassandra.权威指南”书籍。

 类似资料:
  • 如何根据用户定义的类型字段筛选cassandra查询?我想在我的cassandra数据库中创建人员表,所以我在我的cassandra中创建了这个用户定义的类型。 我也有这张桌子。 我需要过滤我的查询,以了解所有姓氏jolie的人。我如何从这个表中查询这个。在cassandra中过滤和查询的情况如何?我知道我可以删除全名类型并将名字和姓氏添加到主表中,但这是我想要做的一个示例。我必须有全名类型。

  • 我在客户端使用AngularJS,在服务器端使用jersey jackson的Java实现RESTful webservice。 我正在使用HTTP PUT方法更新记录。我正在从角客户端应用程序向java webservice应用程序发送一个参数(JSON对象)。 我们的POJO类有一些默认值为0的基本数字字段(long/int)。但在接收到包含这些字段的空白字符串的JSON时,jersey ja

  • 在Noda Time v2中,我们正在转向纳秒分辨率。这意味着我们不能再使用8字节整数来表示我们感兴趣的整个时间范围。这促使我调查Noda Time(许多)结构的内存使用情况,这反过来又让我发现了CLR对齐决策中的一个小怪异之处。 首先,我意识到这是一个实现决策,默认行为可能随时改变。我意识到我可以使用StructLayout和FieldOffset对其进行修改,但如果可能的话,我宁愿想出一个不需

  • 是否可以创建string类型的自定义字段并在显示字段描述时显示它们?我想用YouTrack实现一个bug数据库,如果字段“steps to reproduce”必须写在一个很小的列中,这是不可能做到的。 我正在使用YouTrack2018.1。

  • 我正在尝试自定义Symfony表单标签,通过此Symfony文档为所有必填字段添加星号(*)。但是我的星号

  • 我使用Spring Boot和Hibernate Envers自定义和来存储用户名、ip等附加信息。它工作正常。 作为一个新的需求,我还需要存储来自用户的修改注释。因此,如果用户更改了实体,他/她还需要输入此更改的原因。此文本应保存在其他修订信息中。 我的和类中都有文本,但是如何用这些信息填充?