Не могу использовать "mutateIn" с узлом couchbase sdk

Я пытаюсь реализовать этот кусок кода:

bucket.mutate_in('some_doc',
                  SD.array_append('some.array', 'Hello', 'World',
                                  create_parents=True))

Что я получаю отсюда: https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html

Я также использую это: https://github.com/couchbase/couchnode

Я не могу импортировать "вложенный документ" из couchbase, потому что я получаю сообщение о том, что его не существует, и когда я пытаюсь использовать метод mutateIn (или метод mutate_in), я также получаю сообщение о том, что mutateIn не является свойством ведра (что и должно быть).

Я хотел бы добавить элемент в массив (или создать массив, если он не существует, а затем добавить элемент к нему) для одного из моих документов в моем контейнере базы данных.

2 ответа

Возможно, у вас не установлена ​​достаточно новая версия. Согласно примечаниям к выпуску поддержка Sub Document была реализована в 2.3.0, в то время как в более ранних выпусках она была добавлена ​​как незафиксированная.

Что делает ваш package.json или npm list Команда скажете о версии у вас?

Документация не кажется самой легкой для навигации (и примеры на странице поддокумента находятся на Python, к которому вы можете перейти из раздела узла, не осознавая!) - у меня была та же проблема, проверьте: https://developer.couchbase.com/documentation/server/4.6/sdk/nodejs/document-operations.html

Пытаться

import couchbase from 'couchbase';

let cluster = new couchbase.Cluster(config.couchbase.clusterIp);
let couchbaseBucket = cluster.openBucket(config.couchbase.bucket);

couchbaseBucket
  .mutateIn(documentId)
  .arrayAppend('key', value)
  .execute(function(err, fragment){

    if (!err || err.code == couchbase.errors.checkResults) {
        try {
          fragment.contentByIndex(0);
        } catch (e) {
          console.error('Error for index %d: %s', 0, e.message);
        }
    } else {
      console.error('Top-level document error: %j', err);
    }

  });
Другие вопросы по тегам