10
votes

Trier par date et heure dans la mangouste?

Quelqu'un peut-il me dire comment je peux trier un éventail d'articles en fonction de la date et de l'heure. Actuellement, j'utilise

submittedDate: Thu, 08 Nov 2012 15:42:47 GMT


8 commentaires

Pourquoi ne pas trier par _ID. Les quatre premiers octets de l'identifiant d'objet sont un horodatage afin de servir votre objectif.


@alypal Le _ID (ObjectId) est destiné à être unique, pas séquentiel. Bien que la plupart du temps c'est, il ne peut pas être invoqué sur


Si généré par MongoDB, il est unique et est une valeur de 12 octets constituée d'un horodatage de 4 octets. Ils recommandent même que vous puissiez extraire des horaires d'insertion de _ID plutôt que d'avoir un champ d'horodatage séparé. Voir Mongodb.org/display/docs/Object+ids et Mongodb.org/display/docs/Optimizing+Object+IDS


Fondamentalement, je veux avoir la piste des images récentes examinées, donc Idid ne convient pas ici. Toute autre aide?


@Alihassan - Voir ma réponse ci-dessous


@AlaxjamesBrown Merci pour votre réponse, mais votre sentitaxe n'est pas pris en charge dans mon cas, il jette une exception que .sort doit être un objet ou une chaîne.


peut être dû à la différence de version de mangouste.


J'utilise Mongoose v3.8 et j'ai la même expérience. Le tri par date / heure semblait fonctionner avec des ensembles de données plus petits, mais semble être brisé lorsque je le teste contre des ensembles de données plus importants.


3 Réponses :


16
votes

Le moyen de trier serait: xxx

Une documentation .

à partir de la V3.8.1, la syntaxe serait la suivante: xxx


3 commentaires

@Vivekghaschi Vous n'êtes pas sûr de ce que vous voulez dire? Cela dépend de la façon dont vous stockez votre heure de date?


Cela fonctionne pour moi merci sa question était de mon modèle non de ces questions. +1


Je trouve cela juste trie alphanumericaly.



2
votes

Selon la version 5.11.13.

  1. Ajouter {Timestamps: true} dans votre schéma.

    nouveau schéma ({}, {Timestamps: true});

  2. Ajoutez "Trier" à votre requête.

    modèle.find ({}). Trier ({créé: "Desc '}). Exec ();

    modèle.find ({}). Trier ({créé: 'asc'}). Exec ();

    merci.


0 commentaires

0
votes
    User.findById(req.user._id).populate("todos").then((rUser)=>{ 
      res.render("dashboard", { user: req.user, todos: rUser.todos, });
    }).catch((e)=>{
        res.send(e);
    });

1 commentaires

La communauté encourage l'ajout d'explications sur le code, plutôt que des réponses pure de codes (voir ici ).