2010-07-12 5 views
1

Comment puis-je effectuer une requête comme: db.articles.find(). Sort ({created_at: -1}). Limit (5); dans le pilote MongoKit?Comment obtenir des résultats triés dans MongoKit?

Peut-être que je suis aveugle, mais je ne le trouve pas dans manual. Je veux récupérer 5 derniers produits commandés par 'created_at'. MongoKit vous propose de trier la liste de résultats (plus de 2000 éléments) et de la découper en tranches. Il est unaccepable, je veux trier() et limite() au niveau de la base de données, pas python :(

Répondre

4
db.articles.find().sort({_id: -1}).limit(10); 

Cela devrait fonctionner un charme. Le « _id » est l'ID de base de données qui essentiellement comme une clé primaire dans la vieux jours SQL.

+0

Ok, cela veut dire que j'étais stupide. conn.test.cart.find(). sort ("id _ ", 1) - (sans accolades) re allié travaille. Désolé pour mon inattention. Et comment trier avec de nombreux champs? .sort(). sort()? – vas3k

+0

sort ({_ id: -1, title: -1}) Il suffit donc d'ajouter une virgule entre chaque argument. Cette notation d'objet {} bracket est assez universelle, json, python, actionscipt, javascript. –

0

correcte MongoKit/PyMongo équivalent est

connection.articles.find().sort('created_at', pymongo.DESCENDING).limit(5) 

Plus sur PyMongo cursor doc.

Questions connexes