0

Couch DB (すべてのバージョン 1.01 - 1.31) のビューに問題があります。

私のデータは次のようになります。

{
   "_id": "9a12b7fa4b886640be06f74b814306a6",
   "_rev": "1-420c723f8c8f7921ead3df04bfc9ade5",
   "client_id": "008",
   "day": 1,
   "month": 1,
   "year": 2013,
   "comment": "cool"
}

そして、クライアントが一定期間内に行ったすべてのトランザクションを確認したい、たとえば 1 か月としましょう:

だから私のマップ関数は次のようになります:

function(doc) {
  emit([doc.client_id, doc.day,doc.month, doc.year], doc);
}

したがって、次のように startkey と endkey を使用してクエリを実行します

http://localhost:5984/test/_design/clients/_view/by_cid_day_month_year?startkey=[%22007%22,1,1,2013]&endkey=[%22007%22,32,1,2013]

しかし、client_id = 007 で 1 月のすべてのドキュメントを取得する代わりに、007 に一致するすべてのレコードを取得します。

だから私が誤解している何かがあるはずです。クエリの何が問題になっていますか? どのように見えるべきですか?

私の考えでは、特定の日付、または 1 月 1 日から 1 月 6 日までのログを表示することもできます。

日、月、年のキーを文字列として作成しようとしましたが、結果は常に同じであるか、上記の例のように奇妙な場合さえあります。9 月にレコードが見つかります (9) が、エイプリル すべてのレコードを取得します。

私はこれを理解していません。これは非常に簡単です。

4

1 に答える 1