架構:
const restaurantSchema = new mongoose.Schema({
address: {
building: String,
coord: [Number, Number],
street: String,
zipcode: String,
},
borough: String,
cuisine: String,
grades: [{ date: Date, grade: String, score: Number }],
name: String,
restaurant_id: String,
});
我正在嘗試找到一家得分最高的餐廳grades.score并回傳該分數。
我試過做什么:
Restaurant.find({}, { "grades.score": 1, _id: 0 }).sort({ "grades.score": -1 }).limit(1).exec((err, docs) => {
if (err) {
console.log(err);
} else {
console.log(docs);
}
});
它回傳什么:
[
{
grades: [ [Object], [Object], [Object], [Object], [Object], [Object] ]
}
]
我想要的是:
[
{
score: 131
}
]
uj5u.com熱心網友回復:
詢問
- 您可以使用
$max作為累加器的聚合運算子和像這里這樣的陣列 - 這是本地的(在檔案陣列內)
max-score如果你想要全域(在所有集合中)你可以排序 descmax-score和$limit 1
玩蒙哥
aggregate(
[{"$project": {"_id": 0, "max-score": {"$max": "$grades.score"}}}])
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/503994.html
下一篇:使用或條件的貓鼬過濾器
