0

私はcouchdbからアプリのログエントリを表示しようとしています - 各ログエントリにはタイムスタンプ、ログタグ、クライアントのリモートIPが含まれています.私のマップ関数は次のとおりです:

{
"_id": "_design/log",
"language": "javascript",
   "views": {
       "browse": {
           "map": "function(doc){ if (doc.type=='log') {emit([doc.date,doc.tag,doc.ip], doc);}}"
       }
   }
}

指定した IP(タグ) のログエントリを日付順に並べ替えるにはどうすればよいですか?

/_design/log/_view/browse?startkey=["info","8.8.8.8"] のバリアントを既に試しましたが、成功しませんでした。

4

2 に答える 2

0

開始キーには、日付、タグ、IPの3つの要素が必要です。

失敗したクエリには、開始キーに2つの要素しかありません。

複合キーに関するドキュメントがいくつかあります。使用されている例では、年、月、日に対して異なるキーがあります。この本で例を見つけることができます: http ://shop.oreilly.com/product/0636920018247.do

于 2012-05-17T12:22:13.773 に答える
-1

マップ機能:

function(doc) {
  if (doc.type === 'log') {
    emit([doc.tag, doc.ip, doc.date], 1);
  }
}

クエリ パラメータ(適切に URL エンコード) :

?startkey=["info","8.8.8.8"]&endkey=["info","8.8.8.8",{}]&include_docs=true

タグとIPが固定されているため、結果は日付順にソートされます。

于 2012-05-18T04:44:59.240 に答える