这是我的数据:
User: [
{
username: 'Alice',
hobbies: [
{ place: 'garden',
tool: 'scissors'
},
{
place: 'montain',
tool: 'coat'
}
]
},
{
username: 'Joe',
hobbies: [
{ place: 'garden',
tool: 'scissors'
}
]
}
]
我尝试提取用户'Alice'的'爱好'并按'地点'排序。我需要使用MongoDB/Mongoose函数进行排序,而不是像.sort((a,b)=〉a.url〉b.url?1:-1)的值。
我有一个这样的函数:
async function findPlaceSort(username, sortElement, sortDirection) {
const sortedPlaces = await User.findOne({username: username})
.hobbies
.sort({[sortElement]: sortDirection});
return sortedPlaces;
}
我用**findPlaceSort('Alice','place',1)**调用该函数
我试过很多种都没有成功。
1条答案
按热度按时间rseugnpd1#
如果你使用的mongoDB版本〉= 5.2,你可以在一个投影中使用
$sortArray
操作符,简单地使用下面的代码来实现: