1

私は次のような文書を持っています

{_id:1,
name:"john"
}
{_id:2,
name:"john boss"
}
{_id:3,
name:"jim"
}

johnがドキュメントに保存されている場所でデータを検索する必要があります。「john」を検索すると、ドキュメントは_id:1と_id:2に関連するデータを取得するはずです。結果を得るために私を案内してください。

誰かが解決策を提供してくれれば幸いです。

4

1 に答える 1

0

「」フィールドのすべての「単語」を表示するCouchDBビューをお勧めし"nameます。

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)
}

クエリ/db/_design/example/_view/names?key="john"を実行すると、2つの行が表示されます。1つはドキュメントID 1、もう1つはID 2です。小文字への変換も追加したため、「john」を検索すると「John」という名前の人と一致します。

重複する可能性があります。同じドキュメントIDが複数回リストされてい{"name":"John John"}ます。ただし、重複するすべての行が隣接することが保証されます。

?include_docs=trueリクエストに追加して、各行の完全なドキュメントを取得することもできます。

于 2012-04-28T04:06:07.693 に答える