0

「書籍」と「著者」の 2 種類のドキュメント (エンティティ) があります。

書籍ドキュメントのサンプル: { _id:"123456", name:"Peace and War", pages:"2234", author_id:34567 }

著者文書のサンプル: { _id:"34567", surname:"Tolstoy", name:"Leo" }

問題は、次の構造を返すビューをどのように作成できるかです。

{ _id:"123456", name:"平和と戦争", pages:"2234", author_id:34567, surname:"Tolstoy", name:"Leo" }

出来ますか?

ありがとう!

4

1 に答える 1

0

これを行う1つの方法は、WPCoderのアイデアをinclude_docs=trueクエリで使用して応答を取得することです"value": { book_id:"123456", name:"Peace and War", pages:"2234" }, "doc": {_id:34567, surname:"Tolstoy", name:"Leo" }。私はそれをします。

本当に気に入らない場合は、include_docsマップを試すこともできます。

if (doc.author_id) {
  emit([doc.author_id, doc._id], doc);
} else
// check if author
if (doc.surname && doc.name) {
  emit([_id, 0], doc);
}

これで、オプションを指定したクエリは?startkey=["author id"]&endkey["author id", {}]、著者による本のリストを返します。書籍をフィルタリングして、リスト付きの単一のオブジェクトにマージできますが、著者を事前に知っている必要があります(著者ではなくキーを使用して検索します)。

を使用することもできkeys=[["author id", 0], ["author id", "book id"]]ますが、著者と本のIDの両方を知っている必要があります。それはすべてあなたがそれを何のために必要とするかに依存します。もう一度繰り返します。WPCoderが提案したものを使用します。

于 2012-10-30T08:47:13.877 に答える