使用单引号在Cassandra中插入集合值

时间:2015-09-03 15:56:32

标签: cassandra cql nosql

有没有办法在Cassandra的集合中插入一个带单引号的值?这就是我所拥有的:

表:

CREATE TABLE test.test (
   name text PRIMARY KEY,
   values map<text, text>
)

插入:

INSERT INTO test (name, values) VALUES ( 'jos''emy',{'foo':'josemy''s house'});

查询:

SELECT * FROM  test;
 name    | values
---------+----------------------------
 jos'emy | {'foo': 'josemy''s house'}

正如你所看到的,Cassandra取代了简单&#34;名称&#34;中的双引号。字段,但不替换地图内字段中的引号。我想要的结果是:

 name    | values
---------+----------------------------
 jos'emy | {'foo': 'josemy's house'}

2 个答案:

答案 0 :(得分:0)

我不知道某种方式。你想做什么看起来应该有用。可能有人忘记检查集合字符串中的转义字符。如果没有人提出答案,您可能想要为此输入票证,以便可以查看。

Report bug

答案 1 :(得分:0)

解决方法是选择JSON。

cqlsh:gii> insert into test (name,values) values ('Tu''pac',{'fo''o':'josemy''s house'});
cqlsh:gii> select * from test;
 name    | values
---------+------------------------------
  Tu'pac | {'fo''o': 'josemy''s house'}

cqlsh:gii> select json * from test;

 [json]
----------------------------------------------------------
 {"name": "Tu'pac", "values": {"fo'o": "josemy's house"}}