2012-04-30 12 views
2

CouchDBには、timestampフィールドとgroupフィールドを持つアイテムがあります。私はすべての項目のグループ==「foo」というのリストを取得するには、このビューの機能を使用します。CouchDBのフィルタリングされソートされたビュー?

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

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

は、今私はtimestampフィールドでソートされた出力をしたいのですが。それ、どうやったら出来るの?

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

、次のパラメータを持つクエリ:

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

SELECT * FROM SomeTable WHERE group=? ORDER BY timestamp

答えて

2

2番目の列としてタイムスタンプを放ち:基本的に、私はこのSQLクエリと同等のものをしたいですあなたのタイムスタンプは文字列ではなく数字であると仮定しています。数字のタイムスタンプを["foo"]["foo",""]の間でソートする方法を理解するには、thisを読んでください。

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

+0

ありがとう、これは私が必要としていたものです。 –

関連する問題