2

timestampフィールドとフィールドを持つCouchDBにいくつかのアイテムがありgroupます。このビュー関数を使用して、group == "foo" であるすべてのアイテムのリストを取得します。

{
  "map" : "function(doc) { emit(doc.group, doc); }"
}

http://localhost:5984/my_database/_temp_view?key="foo"

ここで、出力をフィールドでソートしたいと思いtimestampます。それ、どうやったら出来るの?基本的に、次の SQL クエリに相当するものが必要です。

SELECT * FROM SomeTable WHERE group=? ORDER BY timestamp

4

1 に答える 1

2

タイムスタンプを 2 番目の列として出力します。

function(doc) { emit([doc.group,doc.timestamp]); } 

次に、次のパラメーターを使用してクエリを実行します。

view?startkey=["foo"]&endkey=["foo",""]

タイムスタンプは文字列ではなく数値であると想定しています。これを読んで、数値タイムスタンプが と の間["foo"]でどのようにソートされるかを理解してください["foo",""]

docまた、値として発行しないでください。多くのストレージを使用します。ドキュメントが本当に必要な場合include_docs=trueは、クエリで使用してください。

于 2012-04-30T21:22:34.093 に答える