我有以下格式的Json文档
Name :
Class :
City :
Type :
Age :
Level :
Mother :
Father :
我有这样的地图功能
function(doc,meta)
{
emit([doc.Name,doc.Age,doc.Type,doc.Level],null);
}
我能做的就是给出“名字”并过滤掉所有结果,但我还想做的只是给出“年龄”并过滤掉。因为该couchbase不提供跳过“名称”键的功能。所以我必须创建一个新的地图函数,其中“Age”作为第一个键,但我也必须只查询“Level”键,所以这样。我必须为每个字段创建许多地图函数,这显然是不可行的,除了制作新的地图功能以实现这种类型的功能之外还有什么我可以做的吗? 我不能用n1ql因为我有1.5亿个文件所以需要花费很多时间。
答案 0 :(得分:2)
首先 - 这不是一个非常好的减少功能。
现在你可以做的事情:
即。如果我有
格式的文档{
"name": "Roi",
"age": 31
}
我可以向索引发出两个值:
function (doc, meta) {
if (meta.type=="json") {
emit(doc.name, null);
emit(doc.age, null);
}
}
现在我可以通过2个值进行查询。 这比创建2个视图要好得多。
无论如何,如果你有东西可以过滤 - 总是建议。