有没有办法在cassandra中插入json/Map列表?

bvpmtnay  于 2021-06-13  发布在  Cassandra
关注(0)|答案(1)|浏览(276)

我试图在cassandra中插入一个json列表。我制作了一个名为medias的列,但不知道如何在此列中插入媒体。我试过使用udt,但似乎不起作用。但是Map有动态数据类型。以下是一个示例:
[{“id”:“0c2ed74f-6937-490e-9385-6b1feb16e0bd”,“name”:“000009a.mp4”,“mediatype”:1,“contentsize”:0,“width”:“480.0”,“height”:“480.0”,“author”:“ae89d4c5-6912-43c7-a6ee-6f740baef818”,“created在”:“2020-08-02t11:12:59z”}]
有人能建议我怎样才能做到这一点吗?任何帮助都会很好。
编辑这是我如何定义我的表

CREATE TABLE post(
        id text, 
        title text,
        content text,
        author text,
        created_at text,
        updated_at text,
        medias list<frozen<media>>
        PRIMARY KEY(id,author)
);

我定义的udt是:

CREATE TYPE media(
        id text,
        name text,
        mediaType int,
        contentSize int,
        width text,
        height text,
        author text,
        created_at text
                );
olmpazwi

olmpazwi1#

如果有已知的列列表,可以直接插入json。任何不存在的列都将具有空值。cassandra在管理稀疏表方面非常有效。

CREATE TABLE post(
    id text,
    title text,
    content text,
    author text,
    created_at text,
    updated_at text,
    name text,
    mediaType int,
    contentSize int,
    width text,
    height text,
    PRIMARY KEY(id,author)
);

INSERT INTO post JSON '{ 
    "id": "0c2ed74f-6937-490e-9385-6b1feb16e0bd", 
    "name": "000009A.mp4", 
    "mediaType": 1, 
    "contentSize": 0, 
    "width": "480.0", 
    "height": "480.0", 
    "author": "ae89d4c5-6912-43c7-a6ee-6f740baef818", 
    "created_at": "2020-08-02T11:12:59Z"
}';

看到了吗https://docs.datastax.com/en/cql-oss/3.3/cql/cql_using/useinsertjson.html

相关问题