2013-02-26 5 views
1

Je veux trier le résultat d'une requête Mongo. De here j'ai trouvé que je pouvais le faire par exemple comme ceci:MongoDB tri avec node-mongodb-native

collection.find().sort({ name: 1 }).limit(5) 

Comme je ne veux pas trier par nom, mais par tout ce qui est spécifié par la demande:

var query = require('url').parse(req.url, true).query; 

var n = parseInt(query.limit); 

var f = String(query.field); 

var dir = query.direction; 

collection.find().sort({f: dir}).limit(n) 

problème est qu'il Sortes par "f" et non quelle que soit la valeur de la variable f. Comment puis-je trier par tout ce qui est stocké dans f?

Répondre

2
var query = require('url').parse(req.url, true).query; 
var n = parseInt(query.limit); 
var f = String(query.field); 
var dir = query.direction; 
var sortObj = {}; 
sortObj[f] = dir; 
collection.find().sort(sortObj).limit(n) 

Peut être comme ceci?