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 に答える