2

マイマップ機能

function(doc, meta) {
  emit([doc.city, doc.region], doc.id);
}

私の質問

?keys=[["New York", "Northeast"]]

これは次のように出力されます:

{ 
  city: 'New York',
  region: Northeast
}

北東部からそれらの都市のみを取得する同じマップ関数を使用したい場合、それは機能しません。キーの 1 つだけを一致させる方法はありますか? お気に入り...

?keys=[[null, "Northeast"]]

と出力

[{ 
  city: 'New York',
  region: 'Northeast'
},
{
  city: 'Boston',
  region: 'Northeast'
}]
4

1 に答える 1

6

Couchbase へのクエリ/ビューを使用している場合、キーは左から右にのみ読み取ることができます。

したがって、各「パーツ」に対してクエリを実行できるようにする場合は、出力する新しいビューを作成する必要があります (したがって、同じビューで 2 つの出力を実行するか、2 つのビューを作成することができます)。

emit(doc.region, doc.city);

そして、たとえば次を使用してクエリを実行します

?startkey=["Northeast"]&endkey["Northeast",{}]

また、ご覧のとおり、doc.id を発行していません。doc.id は常に Couchbase ビューによって発行されるため、これは必要ありません。

于 2013-03-25T20:10:15.917 に答える