Podstawowy problem - powiedzmy, że moje dokumenty mają "kategorie" i znaczników czasowych. Jeśli chcę wszystkie dokumenty w „foo” kategorii ze znacznikiem czasu, że w ciągu ostatnich dwóch godzin, to proste:Wiele kluczowych zakresów jako parametry widoku CouchDB
function (doc) {
emit([doc.category, doc.timestamp], null);
}
a następnie kwerendy
GET server:5894/.../myview?startKey=[foo, |now - 2 hours|]&endkey=[foo, |now|]
problem jest kiedy chcesz coś w kategoriach foo lub bar, w ciągu ostatnich dwóch godzin. Gdybym nie dbał o czas, mogłem po prostu wyciągnąć bezpośrednio przez klucz przez kolekcję kluczy. niestety nie mam takiej opcji w zakresach.
Co skończyło się robi w międzyczasie jest zaokrąglenie znacznik czasu do dwugodzinnych bloków, a następnie multipleksowanie kwerendy się:
POST server:5894/.../myview
keys=[[foo, 0 hours], [foo, 2 hours], [bar, 0 hours], [bar, 2 hours]]
To działa, ale będzie bałagan, jeśli chcę, aby przejść z powrotem duża ilość czasu (w stosunku do bloku).
Czy istnieje sposób na wysłanie wielu par startKey/endKey do widoku, podobnie jak klucze: [] tablica, która może być wysłana dla kluczy?
Cóż, możesz użyć klawiszy OR za pośrednictwem klawiszy, ale tak. dzięki. – kolosy