3

私は、couchDB のデータベースにそのようなドキュメントのリストを持っています。

{
   "_id": "9",
   "_rev": "1-f5a9a0b76c6ae1fe5e20f1a1f9e6f8ba",
   "Project": "Vaibhava",
   "Type": "activity",
   "Name": "Civil_Clearence",
   "PercentComplete": "",
   "DateAndTime": "",
   "SourcePMSId": "1049",
   "ProgressUpdatedToPMSFlag": "NO",
   "UserId": "Kundan",
   "ParentId": "5"
}

doc._idキーとして aを渡すと、そのすべての兄弟を取得する必要があるようにビュー関数を作成する方法doc._id(送信したキーと同じ ParentId を持つドキュメント)??

4

2 に答える 2

1

別の回答で述べたように、単一のリクエストでそれを行うことはできません。

ただし、代わりに次のことを行うことができます。

  1. インデックスが付けられたマップ(reduceなし)ビューを定義しますParentID

    function(o) {
      if (o.ParentID) {
        emit(o.ParentID);
      }
    }
    
  2. 親のIDを知るために、オブジェクトに最初のリクエストを送信します。

    GET /myDatabase/myObject
    
  3. 次に、ビューにリクエストを送信します

    GET /myDatabase/_design/myApp/_view/myView/?key="itsParent"&include_docs=true
    

リクエストの数(2)は一定であるため、リクエストが複数ある場合でも、ここではそれほど害はありません。さらに、NodeJSによって処理される単一のリクエストの背後にそれらを隠すことができます。

于 2013-03-18T14:41:37.920 に答える
0

残念ながら、この結果を得るには 2 つの map-reduce 関数を連鎖させる必要があり、その機能は CouchDB では利用できません。詳細については、この質問を参照してください。

于 2013-03-18T08:10:46.587 に答える