【发布时间】:2017-01-15 15:05:59
【问题描述】:
我有以下查询,作为硬编码字符串传递:
router.get( '/rank/:round/', ( req, res, next ) => {
let query = { "score.0.r1" : -1};
Team.find( {} )
.sort( query )
.then( teams => {
return res.json( teams );
} ).catch( next );
} );
但是,当我尝试像这样传递我的路由参数 :round 时:
let query = { "score.0.r" + req.params.round : -1};
它不起作用(它返回一个未排序的列表)。
我也试过了:
let sort = "score.0['r" + req.params.round + "']";
let query = { sort : -1 };
再次,没有成功。这是我正在查询的示例文档:
{
"_id" : ObjectId("57cc7665a43bf14533b0d78a"),
"name" : “Joe Bloggs”,
"score" : [
{
"r5" : 23,
"r4" : 20,
"r3" : 25,
"r2" : 23,
"r1" : 40
}
]
}
...我试图按 r(圆形)分数返回排序列表。
【问题讨论】:
标签: arrays node.js mongodb sorting mongoose