1

我想对 Mongo 查询的结果进行排序。从这里我发现我可以这样做,例如:

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)

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

4

1 回答 1

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)

可能是这样吗?

于 2013-02-26T10:44:01.677 回答