1
我有,作爲一個硬編碼字符串傳遞以下查詢工作:貓鼬通嵌套排序對象查詢
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);
});
然而,當我嘗試在我的路線PARAM :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(圓)分數返回排序列表。
天才的關鍵!謝謝,我永遠不會想到這一點。如果你想提供一個簡短的解釋,我相信這對其他人也是非常有用的。 :-) –