У меня есть этот агрегат, и я сортировал поле (_id.name
) с использованием lowerCase и UTF-8 , но я не могу отсортировать строки, такие как "á" или "Á" или что-то вроде , Как мне отсортировать строки utf-8 и lowerCase?
Совокупный:
Schedule.aggregate([{
$match: {
store: req.body.store,
scheduleStart: {
$lte: start,
$gte: req.body.period
},
status: {
$in: resultStatus
}
}
},
{
$group: {
_id: {
name: "$employee.name",
id: "$employee.id"
},
totalValue: {
$sum: "$value"
},
totalServices: {
$sum: 1
},
totalComission: {
$sum: "$comissionValue"
}
}
},
{
'$addFields': {
'ticket': {
'$divide': ['$totalValue', '$totalServices']
}
}
},
{
$sort: {
"_id.name": 1
}
},
{
$skip: req.body.limit * req.body.page
}
Редактировать
Теперь я использую сопоставление следующим образом:
Schedule.aggregate([{
...
{
$sort: {
"_id.name": 1
}
},
{
$skip: req.body.limit * req.body.page
}
], { "collation": { "locale": "pt" }}).exec((error, response) => {
if (error) res.status(500).send({
error,
code: 0,
message: langs[req.query.lang].somethingWentWrong
});
ОШИБКА:
MongooseError: Callback должен быть функцией, получил [объект Object]