couchdb views/map-reduceに質問があります。
たとえば、次のようなホテルドキュメントを含むデータベースがあります。
[{
_id: "1",
name: "Hotel A",
type: "hotel",
stars: 3,
flags: ["family-friendly","green-hotel","sport"],
hotelType: "premium",
food: ["breakfast","lunch"]
}, {
_id: "2",
name: "Hotel B",
type: "hotel",
stars: 5,
flags: ["family-friendly","pet-friendly"],
hotelType: "budget",
food: ["breakfast","lunch","dinner"]
}]
3つ星のホテルをすべて検索するには、次のビューが当てはまります。
function(doc) {
emit([doc.stars, doc.name]);
}
startkey = [3]を使用すると、すべて問題ありません。
しかし、どのようにして複数のフィルターでビューを作成することができますか?
例-すべてのホテル:
- 3つ星とフラグ「家族向け」と「ペット向け」とhotelType「予算」で?
- hotelType「プレミアム」と食べ物「朝食」または「昼食」で?
- 等
何か案は?
編集:私は今、古き良きmysqlを使用することにしました。CouchDBは私にとって素晴らしい経験でしたが、1つのドキュメントのデータ以上のものが必要な場合は、非常に多くの問題があります:(