2012-05-13 6 views
1

voici mon avis:CouchDB ne triera pas la date correctement?

function(doc) { 
    if(doc.type=="mail" && doc.user_id == 116 && doc.fid == 81){ 
     emit([doc.time], doc.msg); 
    } 
} 

I par défaut JS stocker Date() et voici la liste des doc triés par ordre décroissant.

"Wed May 09 2012 00:16:02 GMT+0800 (SGT)" 
"Wed May 09 2012 00:10:45 GMT+0800 (SGT)" 
"Wed May 02 2012 00:59:47 GMT+0800 (SGT)" 

"Tue May 08 2012 23:55:54 GMT+0800 (SGT)" 
"Tue May 08 2012 21:59:42 GMT+0800 (SGT)" 

"Tue May 01 2012 23:11:57 GMT+0800 (SGT)" 
"Tue May 01 2012 19:00:37 GMT+0800 (SGT)" 
"Tue May 01 2012 18:59:55 GMT+0800 (SGT)" 

**"Sun May 13 2012 16:02:58 GMT+0800 (SGT)"** 
"Sun May 13 2012 16:01:16 GMT+0800 (SGT)" 

Comme vous pouvez le voir, la date ne sont pas triées correctement et "Sun May 13 2012 16:02:58 GMT+0800 (SGT)" est la dernière entrée. Comment puis-je le réparer? Merci!

+1

Ressemble à un tri lexical – CodesInChaos

+0

Merci pour votre commentaire qui me fait penser à stocker en tant que secondes. – Devyn

Répondre

2

I pense que que la date que vous avez dans la base de données sera stockée sous forme de chaîne. Si vous allez dans futon et voir la source de la page, vous devriez être en mesure de confirmer cela.

Dans le passé, j'ai vu des dates stockées comme timestamp unix pour faciliter le tri par valeur entière. Si vous stockez effectivement les données dedans comme une chaîne cette section dans la documentation pourrait être utile: http://wiki.apache.org/couchdb/View_collation#Sorting_by_Dates

+0

J'ai essayé de stocker en secondes pour les trier et cela fonctionne en utilisant * Date.parse (new Date()); * – Devyn

Questions connexes