Créer une vue qui émet tous les doc ids. Les touches de vue seront utilisées pour le tri automatique.
function(doc) {
if(doc.type && doc.type === 'message'){
emit(doc._id, null);
}
}
Ensuite, exécutez une requête: http://host/yourdb/_design/yourdesigndoc/_view/viewname?limit=10&include_docs=true&descending=true
Parce que vous voulez que le document, nous n'inclus quoi que ce soit en tant que valeur dans la vue. Au lieu de cela, nous ajoutons include_docs=true
pour récupérer chaque document complet pour les entrées d'affichage.
Notez qu'il existe également une vue builtin qui fait la même: http://host/yourdb/_all_docs?limit=10&include_docs=true&descending=true
PS: Vous devez être conscient du fait que CouchDB utilise par défaut UUID comme ID, ce qui rend le tri plus ou moins inutiles, si vous voulez vraiment obtenir les derniers documents. Indiquez vos propres identifiants incrémentiels (qu'en est-il de la distribution/réplication?) Ou utilisez un nouveau champ qui enregistre l'heure à laquelle le document a été créé et utilisé dans la vue.
Si vos documents ont un champ created
(à savoir timestamp UNIX, JavaScript Date.now() ou même une RFC chaîne 3339-like), vous pouvez construire un index sur ces valeurs.
est ici le point de vue temporel:
function(doc) {
if(doc.type && doc.type === 'message' && doc.created){
emit(doc.created, null);
}
}
Notez que nous n'émettre le doc._id lui-même. Cependant, CouchDB stocke les doc._id
où les données proviennent automatiquement pour chaque paire clé/valeur émise, de sorte que nous pouvons à nouveau utiliser include_docs=true
pour récupérer les documents complets.
Recherche http://host/yourdb/_design/yourdesigndoc/_view/viewname?limit=10&include_docs=true&descending=true
Merci pour la réponse. Cependant, cela retournera les 10 documents les plus anciens contenant le type: message. J'ai besoin des 10 nouveaux documents. La seule façon dont je peux penser à faire ceci est de tirer chaque identifiant de document, en prenant les 10 derniers identifiants de ce jeu de résultats, puis en appelant les documents directement avec les identifiants ... Ca ne me semble pas être la bonne façon de faire il. – Brian
Avez-vous lu mon PS? Cela dépend de la façon dont vos doc._ids sont générés/assignés. Peut-être que vous devez passer à 'descending = false' ou même ajouter un champ généré à vos documents et l'utiliser. –
wow non ce n'est pas, je jure que je dois avoir essayé cela 100 fois haha ... aucune idée où je l'ai foiré. Merci! – Brian