CouchDBでビュー照合のメリットを享受しようとしていますが、失敗しました。私の場合、何が問題になっているのかを確認してください。
まず、 http: //www.cmlenz.net/archives/2007/10/couchdb-joinsに基づいています
次に、parent_idでリンクされたツリーを実装します。例:
|- Li
|- test
|- tester
CouchDBではこれは次のとおりです。
{"_id":"root","name":"Li","completed":true},
{"_id":"102ef7e2e99db3983a3bb60a490015db","parent_id":"root","name":"test","completed":false},
{"_id":"102ef7e2e99db3983a3bb60a4900209e","parent_id":"102ef7e2e99db3983a3bb60a490015db","name":"tester","completed":false}
したがって、次のビューを定義します。
items : {
map : function(doc){
emit([doc._id, 0], doc);
emit([doc.parent_id, 1], doc);
}
}
そして、startKey = ["root"]のクエリは2つのドキュメントルートのみを返し、それは直接の子のみを返しますが、クエリはすべての(2倍の)ドキュメントを返します。つまり、キーによるフィルタリングは機能しません。
何が問題になる可能性がありますか?
あなたはhttp://yo.iriscouch.com/_utils/database.html?catsでDBを見ることができます
次に、クエリhttp://yo.iriscouch.com/cats/_design/app/_view/items?startKey=[%22root%22]は、引数がない場合とまったく同じように返されます。つまり、startKeyは無視されているように見えます。
startKey = ["root"、0]&endKey = ["root"、2]も試してみましたが、運がありませんでした。
ありがとうございました。