在couchbase View中过滤数据

时间:2015-07-30 10:36:59

标签: couchbase couchbase-view

当我在couchbase中编写视图以返回整个doc时,它也会返回_sync“:{}数据,是否有任何方法可以从响应中删除此数据。

这是我的视图功能: -

function map(doc, meta) {
    if (doc.type == 'user' && doc.user_id) {
        emit(doc.user_id, doc);
    }
}

1 个答案:

答案 0 :(得分:2)

首先,您不应该发出整个文档。这使得索引在磁盘上更大,并且它可以减少,因为您可以从视图行轻松获取整个文档(文档ID始终包含在内,并且SDK通常会透明地为您提取它)。

但是,在你的情况下,你实际上可能需要第二部分发射。选择您感兴趣的属性并在数组中发出它们(如emit(doc.user_id, [doc.attributeA, doc.attributeB])),从而有效地"过滤掉#34; _sync

唯一的问题是,如果您稍后向用户添加attributeC,则不会自动包含该内容(因此会过滤掉未在地图功能中明确列出的属性)。这有意义吗?