1

我正在尝试实现这段代码:

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 不是属性桶(应该是)。

我想为我的沙发库存储桶中的一个文档将一个项目附加到一个数组(或者如果它不存在则创建一个数组,然后将一个项目附加到它)。

4

2 回答 2

1

您可能没有安装足够新的版本。根据发行说明,子文档支持在 2.3.0 中是 GA,而在早期版本中添加为未提交。

你的 package.json 或npm list命令对你拥有的版本有什么看法?

于 2017-06-30T23:32:20.167 回答
1

文档似乎不是最容易浏览的(子文档页面中的示例是 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);
    }

  });
于 2018-03-22T12:59:05.137 回答