1

カウチ データベース データベースにクエリを実行するには、次のスタイルで http GET リクエストを送信できます。

ホスト:5984/db/_design/some_view/_view/view1?key="foo"

view1 という名前の単純なビューを作成するには、マップを作成できます

function(doc){
  emit(doc.bar,doc);
}

これにより、doc.bar がキーで doc が値であるキーと値のペアのリストが生成されます。この場合、doc.bar = "foo" であるデータベースのサブセットです。

エミット機能は、そのパラメータを URL リクエストで渡されたキー パラメータと比較しているようです。

URL からキーの値を取得し、エミットに渡す前にチェックするにはどうすればよいですか?

4

1 に答える 1

1

MapReduce はこのようには機能しません。

Map (および reduce) 関数は、各オブジェクトの各クエリで呼び出されるわけではありません。これらは、更新されたオブジェクトごとに (クエリ時に) 呼び出されます。

これは、「ドキュメント」(別名オブジェクト) が変更されない限り、発行されたキーと値がインデックスに保持されることを意味します。MapReduce が非常に効率的である理由は、キャッシュ管理にあります。

つまり、インデックスはクエリの結果としてではなく、考えられるすべての結果の予測として考えてください。

テキスト ボックスでさらに MapReduce を説明することはほぼ不可能です。チュートリアルとビデオに従うことをお勧めします。

MapReduce の基本を理解したら、CouchDBを使用してインデックスをクエリするkey方法 ( 、 またはstartkeyおよび を使用endkey)、および応答をフォーマットする方法(必要に応じてカスタム パラメーターを使用) を学習します。

于 2013-10-22T12:57:21.947 に答える