Le problème sous-jacent - disons que mes documents ont "catégories" et timestamps. Si je veux tous les documents du « foo » catégorie qui ont un horodatage qui est au cours des deux dernières heures, il est simple:Plusieurs plages de clés en tant que paramètres d'une vue CouchDB
function (doc) {
emit([doc.category, doc.timestamp], null);
}
puis requête comme
GET server:5894/.../myview?startKey=[foo, |now - 2 hours|]&endkey=[foo, |now|]
le problème vient quand je veulent quelque chose dans les catégories foo ou barre, dans les deux dernières heures. Si je ne me souciais pas de temps, je pourrais juste tirer directement par clé à travers la collection de clés. Malheureusement, je n'ai pas une telle option avec des plages.
Ce que je fini par faire dans l'intervalle est arrondi l'horodatage des blocs de deux heures, puis multiplexer la requête sur:
POST server:5894/.../myview
keys=[[foo, 0 hours], [foo, 2 hours], [bar, 0 hours], [bar, 2 hours]]
Il fonctionne, mais être gênant si je veux revenir un beaucoup de temps (par rapport à la taille de bloc).
Existe-t-il un moyen d'envoyer plusieurs paires startKey/endKey à une vue, comme les clés: [] tableau qui peut être affiché pour les clés?
bien que vous pouvez OU touches à travers les messages post, mais oui. Merci. – kolosy