当我在 couchbase 中编写视图以返回整个文档时,它还返回 _sync":{} 数据,有没有办法从响应中删除这些数据。
这是我的视图功能:-
function map(doc, meta) {
if (doc.type == 'user' && doc.user_id) {
emit(doc.user_id, doc);
}
}
当我在 couchbase 中编写视图以返回整个文档时,它还返回 _sync":{} 数据,有没有办法从响应中删除这些数据。
这是我的视图功能:-
function map(doc, meta) {
if (doc.type == 'user' && doc.user_id) {
emit(doc.user_id, doc);
}
}
首先,您永远不必发出整个文档。这使得磁盘上的索引更大,并且它是多余的,因为您可以从视图行轻松获取整个文档(始终包含文档 ID,并且 SDK 通常会透明地为您获取它)。
不过,在您的情况下,您实际上可能需要发射的第二部分。选择您感兴趣的属性并在数组中发出它们(如emit(doc.user_id, [doc.attributeA, doc.attributeB])
),从而有效地“过滤掉” _sync
。
唯一的问题是,如果稍后您attributeC
向用户添加一个,它将不会自动包含在内(因此它会过滤掉未在 map 函数中明确列出的属性)。那有意义吗?