Запрос N1QL для обновления элемента массива по его адаптированной версии

#couchbase

#couchbase

Вопрос:

При публикации данных я использовал escapeCSV для обработки дополнительной запятой, но данные стали немного больше / «теперь я хочу обновить содержимое с помощью N1QL, но я застрял

     "School": [
    {
      "address": ""257 Shyam Nagar, Indore"",
      "name": "National Convent"
    }


  Required:-

   "School": [
    {
      "address": "257 Shyam Nagar, Indore",
      "name": "National Convent"
    }
  

Ответ №1:

Используйте функцию REPLACE()

 UPDATE default d 
SET p.address = REPLACE(p.address, ""","") FOR p IN d.School END 
WHERE ...;
  

Ответ №2:

Вам нужно будет удалить их перед импортом, N1QL нужен действительный JSON. Кроме того, вы также можете использовать одинарные кавычки:

 INSERT INTO `test` ( KEY, VALUE ) 
 VALUES 
 ( 
   'mykey2', 
    {
      'type': '"toy',
      "attributes": {
      'material': 'metal"',
      'color': 'red""',
      'weight': '200gr"',
      'height': '5cm',
      'width': '15cm'
    }
}
  

)

Комментарии:

1. можно ли это сделать с помощью запроса update или применив любую другую строковую функцию

2. Вы можете использовать replace docs.couchbase.com/server/6.0/n1ql/n1ql-language-reference /…