Das zugrunde liegende Problem - sagen wir meine Dokumente haben "Kategorien" und Zeitstempel. Wenn ich alle Dokumente in der „foo“ Kategorie möchten, die einen Zeitstempel aufweisen, die innerhalb der letzten zwei Stunden, es ist ganz einfach:Mehrere Tastenbereiche als Parameter für eine CouchDB-Ansicht
function (doc) {
emit([doc.category, doc.timestamp], null);
}
und dann Abfrage als
GET server:5894/.../myview?startKey=[foo, |now - 2 hours|]&endkey=[foo, |now|]
das Problem, wenn kommt I möchte etwas in den Kategorien foo oder bar, innerhalb der letzten zwei Stunden. Wenn mir die Zeit egal war, konnte ich einfach direkt mit dem Schlüssel durch die Schlüsselsammlung ziehen. Leider habe ich keine solche Option mit Bereichen.
Was endete ich in der Zwischenzeit nach oben tun wird, um den Zeitstempel zu zweistündige Blöcke Runden, und Multiplexen dann die Abfrage aus:
POST server:5894/.../myview
keys=[[foo, 0 hours], [foo, 2 hours], [bar, 0 hours], [bar, 2 hours]]
Es funktioniert, wird aber chaotisch, wenn ich ein zurück gehen möchten viel Zeit (im Verhältnis zur Blockgröße).
Gibt es eine Möglichkeit, mehrere startKey/endKey-Paare an eine Ansicht zu senden, ähnlich dem Schlüssel: [] Array, das für Schlüssel gebucht werden kann?
gut können Sie oder Tasten durch die Schlüssel Post, aber ja. Vielen Dank. – kolosy