在couchdb中搜索所需数据

在couchdb中搜索所需数据,couchdb,Couchdb,我有这样的文件 {_id:1, name:"john" } {_id:2, name:"john boss" } {_id:3, name:"jim" } 我必须搜索约翰存储在文档中的数据。假设,如果我搜索john,文档应该获得_id:1&_id:2相关数据。请引导我得到结果 如果有人能提供解决方案,我将不胜感激。我建议您使用一种方法来显示“姓名”字段中的所有单词 现在,如果查询/db/_design/example/_view/names?key=john,将得到两行:一行用于文档id 1,

我有这样的文件

{_id:1,
name:"john"
}
{_id:2,
name:"john boss"
}
{_id:3,
name:"jim"
}
我必须搜索约翰存储在文档中的数据。假设,如果我搜索john,文档应该获得_id:1&_id:2相关数据。请引导我得到结果

如果有人能提供解决方案,我将不胜感激。

我建议您使用一种方法来显示“姓名”字段中的所有单词

现在,如果查询/db/_design/example/_view/names?key=john,将得到两行:一行用于文档id 1,另一行用于id 2。我还添加了小写转换,因此搜索john将匹配名为john的人

可以重复:同一文档ID多次列出,例如{name:John};但是,可以保证所有重复的行都是相邻的


您还可以将?include_docs=true添加到您的请求中,以获取每行的完整文档。

在请求之前您尝试过什么吗?请先展示你的尝试。
function(doc) {
    // map function: _design/example/_view/names

    if(!doc.name) // Optionally do more testing for doc type, etc. here.
        return

    // Emit one row per word in the name field (first name, last name, etc.).
    var words = doc.name.split(/\s+/)
    for(var i = 0; i < words.length; i++)
        emit(words[i].toLowerCase(), doc._id)
}