2

私は CouchDB の初心者で、curl をいじっていましたが、データを正しく削減できないようです。

curl -X POST -d '{ 
  "map":"function(doc){ emit(doc.loc, 1) }",
  "reduce":"function(keys, values){ return sum(values) }"
}' -H 'Content-Type: application/json' 'http://localhost:5984/users/_temp_view'

私の意図は、「US」、「AU」、「CA」などの場所 (doc.loc) に基づいてドキュメントを削減することです。

そして、私は次のようなものを期待しています:

{
  "rows":[
   {"key":"US", "value":10},
   {"key":"AU", "value": 5},
   {"key":"CA", "value": 10}
  ]
}

しかし、代わりに、すべてのドキュメントの数を含む空のキーを取得しています

{"rows":[{"key":null,"value":1822}]}

ちょうど私が試した健全性チェックとして

emit(doc.loc, doc.loc)

そして得た

{"rows":[{"key":null,"value":"00AUAUAUAU...

つまり、私のデータには doc.loc があります


繰り返しますが、これは完全に初心者レベルなので、おそらく非常に単純なものが欠けています。

4

1 に答える 1

1

?group=trueクエリで欠落していた問題を解決しました。

curl -X POST -d '{ 
  "map":"function(doc){ emit(doc.loc, 1) }", 
  "reduce":"function(keys, values){ return sum(values) }" 
}' -H 'Content-Type: application/json' 'http://localhost:5984/users/_temp_view?group=true'

期待した結果が得られます

{"rows":[{"key":"--","value":25},{"key":"AU","value":493}, ...
于 2012-07-25T08:55:53.560 に答える