Как вставить объект JSON, содержащий $ в качестве значения в Кассандре - PullRequest
0 голосов
/ 19 ноября 2018

Мне нужно добавить пару значений в качестве валюты в db cassandara через datastax, одно из которых имеет значение $ в качестве значения. Но это терпит неудачу.

INSERT INTO concept_value_set (concept_name,value_set) 
    VALUES ('@CurrencyType',{'Dollar', 'Usd', 'Euro', 
    'Pound', 'Frank', 'Renminbi', '$'});

Это вызывает проблемы с системой.

Я пытался сбежать $, используя

INSERT INTO concept_value_set (concept_name,value_set) 
   VALUES ('@CurrencyType',{'Dollar', 'Usd', 'Euro', 
   'Pound', 'Frank', 'Renminbi', '$$'});

но тоже не получается.

Есть ли способ сбежать $ здесь. Я не смог найти подходящих ссылок на него.

1 Ответ

0 голосов
/ 19 ноября 2018

Я не думаю, что знак доллара - ваша проблема здесь.Я думаю, что это в том, как значение JSON использует одинарные кавычки.Перестраивая вашу таблицу (основываясь на предоставленной информации), я придумал такую ​​структуру:

CREATE TABLE concept_value_set (
  concept_name TEXT PRIMARY KEY,
  value_set TEXT);

И я смог заставить ее работать:

cassdba@cqlsh:stackoverflow> INSERT INTO concept_value_set JSON '{
    "\"concept_name\"":"@CurrencyType",
    "\"value_set\"":"Dollar, Usd, Euro, Pound, Frank, Renminbi, $"}';

Теперь я могузапросить таблицу для TEXT:

cassdba@cqlsh:stackoverflow> SELECT * FROM concept_value_set
                             WHERE concept_name='@CurrencyType';

 concept_name  | value_set
---------------+----------------------------------------------
 @CurrencyType | Dollar, Usd, Euro, Pound, Frank, Renminbi, $

(1 rows)

Таблица также может быть запрошена для JSON, например:

cassdba@cqlsh:stackoverflow> SELECT JSON value_set FROM concept_value_set
                             WHERE concept_name='@CurrencyType';

 [json]
---------------------------------------------------------------
 {"value_set": "Dollar, Usd, Euro, Pound, Frank, Renminbi, $"}

(1 rows)

Вы можете найти больше информации о работе с JSON в Cassandra на главной Сайт документации проекта Apache Cassandra , а также на сайте документации DataStax: ( INSERT JSON , QUERY JSON ).

Надеюсь, это поможет.

...