singlekey
でのみクエリする必要がある場合は、次のマップを使用できます。
function (doc) {
if (doc.blogId) {
emit([doc.key, doc.anotherkey], 1);
}
}
"KEY"
およびwithのクエリ?startkey=["KEY"]&endkey=["KEY",{}]&include_docs=true
。
ここでは、 CouchDB の照合仕様に従って:
["KEY"]
は、どの値よりも小さい["KEY","OTHER"]
値です (より長い配列はプレフィックスの後にソートされるため["KEY2","OTHER"]
) "KEY2" < "KEY"
。
- andはJSON オブジェクトでない場合(JSON オブジェクトは他の JSON 値の後に来るため)、どの値
["KEY",{}]
よりも大きい値ですが、 withのどの値よりも小さい値です。["KEY","OTHER"]
doc.otherkey
["KEY2","OTHER"]
"KEY2" > "KEY"
もちろん、これは文字列に限ったことではありません。照合が正しい限り、どのタイプの値でも機能します。
startkey
との値を URL エンコードすることを忘れないでくださいendkey
。たとえば、curl
データベースが「DB」であると仮定して使用します。
curl 'http://localhost:5984/DB/_design/test/_view/all?startkey=%5B%22KEY%22%5D&endkey=%5B%22KEY%22,%7B%7D%5D&include_docs=true'
ディスク容量を節約するために、include_docs
ドキュメント全体を出力する代わりに、クエリ パラメータを使用したことに注意してください。emit(..., doc)
クエリ パラメータについては、CouchDB ドキュメントに記載されています。
結果を降順で並べ替えるには、クエリ パラメータを使用し、決定版ガイド ブックに記載されているようにとdescending=true
の値を入れ替えます。startkey
endkey
curl 'http://localhost:5984/DB/_design/test/_view/all?endkey=%5B%22KEY%22%5D&startkey=%5B%22KEY%22,%7B%7D%5D&include_docs=true&descending=true'