0

私は値を次のように放出するビューを持っています

function(doc) {
 var d = new Date(doc.created_date);
 emit([d,doc.unique_id],doc);
}

ここでは、1 つのクエリで複数の unique_id を取得する必要があります。だから私は Keys=["unique_id1","unique_id1"] を使用してIDを取得します..しかし、日付でソートし、unique_idも取得する必要があります。上記のようにクエリを実行すると、db.から結果が得られませんが、以下のようにビューを変更してクエリを実行すると、結果は正しく取得されますが、日付でソートされません。

function(doc) {
 emit(doc.unique_id,doc);
}

単一のクエリで両方を取得する方法を誰かに提案してもらえますか????

Select * from db where unique_id in {"1","3"} order by date

これは私がcouchdbに必要なものです

4

1 に答える 1

0

そんなことはできません。CouchDB では、一意のキーまたはキーのセットでクエリを実行するか、範囲をクエリすることができます。そのため、クエリで作成日を指定せずに一連の一意の ID でクエリを実行する場合、キーに作成日を含めることはできないため、CouchDB は作成日で並べ替えることができません。その場合、一意の ID のみのキーを使用して、クライアント側で (つまり、クエリ後に) created_date で結果を並べ替えることができます。

別の方法として、[unique_id, created_date] を含むキーを指定することもできますが、その場合、[2, *] を含めずに [1, *] と [3, *] をクエリすることはできません (これは、再びフィルター処理できます)。クライアント側で、クエリ後に出力します)。

于 2012-12-21T12:47:18.753 に答える