2013-02-26 189 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) 

可能是這樣嗎?