2014-08-27 3 views
0

Salut J'essaie d'insérer et de trier des données en même temps, mais cela ne fonctionne pas. Est-ce que quelqu'un a de l'expérience avec ça?Insérer et trier Mongodb

Mon code exemple ressemble à ceci:

collection.insert({id:"224535353", type:postValue, date:new Date}, {safe:true},{$sort: { id: -1 }}, function(err, result){ 
         console.log(result); 

    }); 

Solution:

L'erreur a été j'ai essayé de trier le même ids.

collection.find({id:req.session.loggedIn},{sort:{date:-1}}).toArray(function(err, posts) { 

      console.log(posts); 
}); 

Répondre

0

Vous triez trouvez pas sur sur l'insertion. Fondamentalement, vous ne voulez pas prendre soin comment les données sont stockées et il est mongodbs problème pour le récupérer triée si vous voulez un tri afin d'insérer avec

collection.insert({id:"224535353", type:postValue, date:new Date},      
         {safe:true},function(err, result){console.log(result);}); 

et trouver plus tard triés avec

collection.find({}).sort({id:-1}) 
+0

Je vais interroger et trier les données spécifiées.J'ai beaucoup d'objets avec le même id.collection.find ({id: req.session.loggedIn}). sort: ({id: -1}). toArray (fonction (err, messages) { \t \t \t \t \t \t console.log (posts);} –

+0

Oui, mais vous recherchez un ID spécifique, en supposant que req.session.loggedIn est 5 alors tous les documents retournés par find auront id = 5, donc les trier par ID ne changera rien dans le résultat parce qu'ils ont tous le même id. – Trudbert

+0

oui correct. c'était mon erreur –

0

Je ne suis pas tout à fait sûr de ce que vous essayez d'atteindre ici ou si vous utilisez ou moine, mais mongodb ne retourne pas une collection ou même un ensemble de documents lorsque vous faites un insert. Il revient juste un writeResult, comme vous pouvez le voir ici .. http://docs.mongodb.org/manual/reference/method/db.collection.insert/

Ce que vous pouvez faire est de faire l'insert et puis exécutez une requête découverte, comme si ...

collection.insert({id:"224535353", type:postValue, date:new Date}, {safe:true}, function(err, writeResult){ 
     collection.find({},{sort:{id:-1}}, function(e, result){ 
      console.log(result) 
     }) 
}); 
+0

Salut, merci pour votre réponse. J'utilise MongoDB natif. J'utilise la méthode find dans une autre position de mon code. L'insertion des données dans mongodb fonctionne mais maintenant je veux interroger les données insérées triées. J'ai essayé: collection.find ({id: req.session.loggedIn}, {sort: {id: -1}}). ToArray (fonction (err, messages) {console.log (posts);} mais son ne fonctionne pas –

+0

@machupichu Pourquoi est-ce que vous recherchez un ID spécifique et que vous tentez de le trier? Toutes les valeurs de id find ({id: req.session.loggedIn}) seront identiques (ie req.session.loggedIn) – Trudbert

+0

Hi toutes les valeurs ne seront pas les mêmes.J'enquête sur les données brutes qui ont le (req.session.loggedIn) .Je traverse les données et le sort –