Могу ли я добавить новый объект в массив в коуч-базе docusing n1ql или узле SDK

У меня есть следующий документ:

{
    "userId":"b447drga851g",
    "media": [
        {
          "mediaId": "stf9-oi6f-kkvt7s-plt6c-iud5",
          "mediaType": "IMAGE",
          "fileName": "sssss.jpeg",
          "device": "LENOVO A6000",
          "format": "jpg",
          "size": "530",
          "resolution": "1900*1200",
          "isExifData": true,
        },{
          "mediaId": "stf9-oi6f-kkvt7s-plt6c-iud5",
          "mediaType": "IMAGE",
          "fileName": "sssss.jpeg",
          "device": "LENOVO A6000",
          "format": "jpg",
          "size": "530",
          "resolution": "1900*1200",
          "isExifData": true,
        }
      ]
}

Теперь у меня есть другой медиа-объект, поэтому я могу обновить этот документ и добавить новый медиа-объект в медиа-массив.

В настоящее время я получаю весь документ и выдвигаю новый объект через код node.js, так что есть ли способ сделать это в couchbase, используя никель или SDK

1 ответ

Решение

Если у вас Couchabse Server 4.5, вы можете использовать функцию "sub-document" через SDK nodejs, чтобы сделать это.

что-то вроде:

bucket.mutateIn('userKey')
    .arrayAppend('media',
      {"mediaId": "stf9-oi6f-kkvt7s-plt6c-iud5",
      "mediaType": "IMAGE",
      "fileName": "sssss.jpeg",
      "device": "LENOVO A6000",
      "format": "jpg",
      "size": "530",
      "resolution": "1900*1200",
      "isExifData": true},
      false)
    .execute(function(err, result) {
        //check result and/or error
    });
Другие вопросы по тегам