couchdb の複雑なクエリ処理に何か問題があります。
次のような6つのパラメーターで構成される複雑なキーを発行するマップ関数があります。
emit([doc.profileId, doc.beamId, doc.name, doc.beambeanchId, "true", attachName], {beamdocId:doc._id, attachName:attachName})
私のクエリパラメータ(coffescript)は次のようになります:
params =
startkey:[ profileId, beamId, namePrefix, beambeanchId, hasAttach, attachNamePrefix]
endkey:[
profileId or "\ufff0",
beamId or "\ufff0",
namePrefixEnd or "\ufff0",
beambeanchId or "\ufff0",
hasAttachEnd,
attachNamePrefixEnd or "\ufff0"]
問題は、最初の 2 つだけが適切に機能し、残りはまったくフィルタリングされていないことです。たとえば、namePrefixEnd を null 以外の値に設定しても、結果は減少しません。
オブジェクトと配列として発行されたキーでそれを試しました。同じ話、最初の2つだけが機能しています。3 番目は無視されます。namePrefixEnd を使用してインスタンス beamId の順序を変更しても、最初の 2 つだけが正しく機能しています。
何が問題なのですか?couchdb 複合キーのパラメーター数に制限はありますか?
データと db.view 関数にアクセスするために nano ライブラリを使用しています。