Могу ли я добавить новый объект в массив в коуч-базе 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
});