我有一个查询,我需要对许多不同的语言使用不区分大小写的$sort
。我读到了metadata sort的内容,但无法理解它在查询中的工作方式,或者如何使排序对许多语言(utf-8)不区分大小写都有效
我的查询
let sort;
if (sortDetailServices.field === "employee.name") {
sort = {
"employee.name": sortDetailServices.status ? 1 : -1
}
}
Schedule.aggregate([{
'$match': findTerm
},
{
'$facet': {
'totalizer': [{
'$group': {
'_id': '$service.id',
'count': {
'$sum': 1
},
'totalValue': {
'$sum': '$value'
},
'totalComission': {
'$sum': '$comissionValue'
}
}
},
{
'$group': {
'_id': null,
'storesCount': {
'$push': {
'store': '$_id',
'count': '$count'
}
},
'totalValue': {
'$sum': '$totalValue'
},
'totalServices': {
'$sum': '$count'
},
'totalComission': {
'$sum': '$totalComission'
}
}
}
],
'data': [{
'$project': {
'employee.name': 1,
'value': 1,
'scheduleStart': 1,
'scheduleEnd': 1,
'comissionValue': 1,
'status': 1,
'paymentMethod': 1
}
},
{
'$sort': sort
},
{
'$skip': req.body.limit * req.body.page
},
{
'$limit': req.body.limit
}
],
}
}
]
...
答案 0 :(得分:0)
更新:截至目前,mongodb具有不区分大小写的索引:
更新:此答案已过期,3.4将具有不区分大小写的索引。有关更多信息,请查看JIRA https://jira.mongodb.org/browse/SERVER-90
不幸的是,MongoDB尚不区分大小写的索引:https://jira.mongodb.org/browse/SERVER-90,并且该任务已被推迟。
这意味着排序当前不区分大小写的唯一方法是实际创建一个特定的“小写”字段,然后复制所讨论的排序字段的值(当然是小写)并对其进行排序。