我写了一个小函数来根据用户可以制作的两个搜索词获得结果。这些术语是:owner & path
文件夹。
到目前为止,下面的地图功能可以在用户查找bob
&时返回正确的文件夹。 holiday
。
不幸的是,elfe if
部分不起作用,我想要检索文件文档。如果我将两个if
分开,一切正常。为什么不组合? : - )
地图-功能:
function(doc) {
if (doc.type == 'folder') {
emit([doc.owner, doc.path], null);
} else if (doc.files) {
for (var i in doc.files) {
emit(doc.owner, {_id: doc.files[i]});
}
}
}
文件:
// Folder
{
"_id": "folder.abc",
"name": "Holiday",
"type": "folder",
"owner": "bob",
"path": "\\holiday",
"files": [
"file.123"
]
}
// Files
{
"_id": "file.123",
"name": "Hawaii.jpg",
"type": "file",
}
搜索查询:
[Snip]?key=["bob","\\holiday"]&include_docs=true
结果:
{
"total_rows":4,
"offset":2,
"rows":[
{
"id":"folder.abc",
"key":[
"bob",
"\\holiday"
],
"value":null,
"doc":{
"_id":"folder.abc",
"name":"Holiday",
"type":"folder",
"owner":"bob",
"path":"\\holiday",
"files":[
"file.123"
]
}
}
]
}
答案 0 :(得分:0)
不幸的是elfe如果部分不起作用,我想要检索文件文件。如果我将两者分开,如果一切正常。为什么不组合? : - )
这不起作用,因为JavaScript没有elseif
关键字。使用else if
相当于:
if (doc.type === 'folder') {
...
} else {
if (doc.files) {
...
}
}
请参阅:MDN if...else