Couchbase
带有大量的啤酒。 2ms的获取时间令人印象深刻,但我不明白以下地图功能实际上做了什么:
function(doc, meta) {
switch(doc.type) {
case "brewery":
emit([meta.id]);
break;
case "beer":
if (doc.brewery_id) {
emit([doc.brewery_id, meta.id]);
}
break;
}
}
我无法将我的大脑包裹起来。这meta
来自哪里?
答案 0 :(得分:1)
我无法绕过它。这个元东西来自哪里?
Couchbase服务器为每个存储的文档(json或二进制文件)补充元数据。在视图编辑器中,您可以在"预览随机文档"的右侧窗格中看到元数据。例如,在您的问题的屏幕截图中,meta.id将是" labbat_ontario_breweries_labbat_50
"如右侧所示。
meta.id是文档的实际键,它始终存在于包含视图的任何返回文档中(即使您未将键值显式包含在视图输出中) 例如例如,此视图仅输出doc.name,但元数据仍然存在于该视图中的任何返回行。您可以在json结果中访问meta.id元素。
function(doc, meta) {
emit(doc.name,null);
}
答案 1 :(得分:0)
在开始使用couchBase时我也很困惑
您指向的代码在couchbase中是一个非常强大的功能。它允许创建一个预处理数据的视图,以便能够快速访问视图。
调用map函数来创建视图,在map函数中传递每个文档:
更多信息:
http://docs.couchbase.com/admin/admin/Views/views-writing.html