現在、couchdb に関する私の見解は、常に次のようなものを返します。
{
"key":"somekey",
"value":"somevalue"
}
次のようなものを返す方法があるのだろうか:
{
"somekey":"somevalue"
}
「somekey」値を持つキーを配列全体で検索することなく、「somekey」に直接アクセスする必要があります。
ありがとう
現在、couchdb に関する私の見解は、常に次のようなものを返します。
{
"key":"somekey",
"value":"somevalue"
}
次のようなものを返す方法があるのだろうか:
{
"somekey":"somevalue"
}
「somekey」値を持つキーを配列全体で検索することなく、「somekey」に直接アクセスする必要があります。
ありがとう
ビューを使用する場合、これまで見てきたように、ドキュメントのコレクションをキー/値以外の形式で返す直接的な方法は CouchDB によって提供されません。
クライアント側のデータをキー付きインデックスにマップするか、ビューから直接キーでドキュメントをリクエストする必要があります。
/sample/_design/docs/_view/by_somekey?key="somekey"
JavaScript で高速マップ オプションを探している場合 (反復ごとに関数を呼び出すことを回避する)、もちろん、次の単純なロジックを使用できます。
// docs are the documents returned from the view
var map={};
for(var i=0,len=docs.length;i<len;i++) {
map[docs[i].key] = docs[i].value;
}
Couch クエリのフォーマットやデータが気に入らない場合は、list 関数を使用して自由に再フォーマットできます。このようなものがうまくいくはずです:
function(head, req){
send('[');
row = getRow();
if (row){
// here you make your own JS structure to be returned,
// serialize it with toJSON() and send to client with send()
// First row:
var new_row = {};
new_row[row.key] = row.value;
send(toJSON(new_row));
while(row = getRow()){
// Next rows:
send(',');
var new_row = {};
new_row[row.key] = row.value;
send(toJSON(new_row));
}
}
return ']';
}