2013-02-26 169 views
1

我想排序Mongo查询的结果。从here我发现我可以举例来说这样做:MongoDB按节点排序mongodb-native

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

正如我不想以按名称排序,但无论是通过请求指定:

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) 

的问题是,它sortes通过“f”而不是变量f的值。我如何根据存储在f中的内容进行排序?

回答

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) 

可能是这样吗?