不能将"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 不是 Bucket 的属性(它应该是(。

我想将一个项目附加到数组中(或者创建一个数组,如果它不存在,则创建一个数组,然后将一个项目附加到其中(用于我的 couchbase 存储桶中的一个文档。

您可能没有安装足够新的版本。 根据发行说明,子文档支持在 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);
}
});

最新更新