2012-12-18 2 views
6

Je souhaite renvoyer les résultats de la requête de recherche à l'aide du tri basé sur le champ lastUpdated.MongoDB: Tri des données lors de l'utilisation de DBcollection find

Actuellement, je l'ai vu deux façons

Première approche

BasicDBObject query = new BasicDBObject(); 
query.put("updated_at","-1"); 
query.put(MONGO_ATTR_SYMBOL, "" + symbol); 
DBCursor cursor = DBcollection.find(query).sort(query); 

Deuxième approche

DBCursor cursor = DBcollection.find(query,new BasicDBObject("sort", new BasicDBObject("lastUpdated ", -1))); 

Quelle est la meilleure option pour travailler avec des idées ??

Répondre

8

Si vous jetez un coup d'œil à Java Driver API, la méthode find attend deux paramètres, la requête et les champs qui seront retournés. Une fois que vous souhaitez trier les résultats, utilisez la méthode find traditionnelle et triez le DBCursor.

DBCursor cursor = DBCollection.find(query); 
cursor.sort(new BasicDBObject("lastUpdated ", -1)); 

Rappelez-vous, l'objet dbcursor faire un paresseux fetch pour la base de données, vous pouvez utiliser sorte, limiter ou sauter sans les frais généraux.

Questions connexes