【问题标题】:Querying a record from a list<frozen<UDT>>从列表中查询记录<frozen<UDT>>
【发布时间】:2018-09-26 10:02:56
【问题描述】:

我正在尝试使用 WHERE 子句查询记录,但 Datastax 和 cassandra 站点没有我想要执行的操作的信息。我想查询具有 list&lt;frozen&lt;phone&gt;&gt; 列名为电话的记录。所以我使用 cqlsh 来查询它,但我找不到正确的文档或关键字。

这是我创建的 UDT 创建类型 casstestrun.phone(手机号码文本、传真号码文本、办公室号码文本);

这是我创建的表

create table casstestrun.customer (cid uuid, cname text, phones list<frozen<phone>>);

所以,我的问题是如何从list&lt;frozen&lt;udt&gt;&gt; 中查询记录?

是不是像这样 select*from casstestrun.customer wherephones.celnumber = '222-222-2222';

【问题讨论】:

    标签: c# cassandra cqlsh user-defined-types


    【解决方案1】:

    有关于如何处理user-defined types (UDT) in the documentation的信息。

    您应该在 UDT 和 C# 类之间创建一次映射。

    session.UserDefinedTypes.Define(
       UdtMap.For<Phone>()
    );
    

    然后您可以检索和更新包含phone 值的行:

    var row = session.Execute(statement).First();
    var phones = row.GetValue<IEnumerable<Phone>>("phones");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-24
      相关资源
      最近更新 更多