Я понимаю тот факт, что в версии 3.6 Cosmos DB нам необходимо создать индекс для каждого поля на уровне приложения, если мы хотим выполнить запрос сортировки.
Однако при решении такого рода проблем мы сталкиваемся с еще одна проблема, связанная с индексами, для жалоб на отсутствие composite index
. И этот запрос мы пытаемся выполнить
{
"aggregate": "calendarEventOccurrences",
"pipeline": [
{
"$match": {
"$and": [
{
"parentRefId": {
"$in": [
"12345678"
]
},
"$or": [
{
"startDate": {
"$gte": {
"$date": "2020-04-28T15:45:56.000Z"
},
"$lte": {
"$date": "2021-04-28T15:45:56.000Z"
}
}
},
{
"endDate": {
"$gte": {
"$date": "2020-04-28T15:45:56.000Z"
},
"$lte": {
"$date": "2021-04-28T15:45:56.000Z"
}
}
},
{
"$and": [
{
"startDate": {
"$lte": {
"$date": "2020-04-28T15:45:56.000Z"
}
}
},
{
"endDate": {
"$gte": {
"$date": "2021-04-28T15:45:56.000Z"
}
}
}
]
}
]
}
]
}
},
{
"$sort": {
"startDate": 1,
"endDate": 1,
"title": 1
}
},
{
"$skip": 0
},
{
"$limit": 2147483647
},
{
"$project": {
"id": "$_id",
"title": 1,
"description": 1,
"shortDescription": 1,
"startDate": 1,
"endDate": 1,
"location": 1,
"category": 1,
"timezone": 1,
"contact": 1,
"parentRefId": 1,
"allDay": 1
}
}
]
}
В то время как кажется, что сортировка требуется по трем полям:
{ "$sort" : { "startDate" : 1 , "endDate" : 1 , "title" : 1}}
В результате мы вручную создали составной индекс из cosmosDB через mon go API и из db.collection.getIndexes()
мы могли видеть, что составной индекс был успешно создан.
Тем не менее проблемы не исчезли go, надеясь найти реальное решение здесь для решения проблемы индекса на Космос версия 3.6 с API MongoDB.